• ベストアンサー

ファイルをコピーしたい。できれば圧縮まで。

Set fs = CreateObject("Scripting.FileSystemObject") fs.CopyFile("C:\WINDOWS\デスクトップ\作業時間.xls","C:\WINDOWS\デスクトップ\kiroku\作業時間.xls") デスクトップにある作業時間というエクセルのファイルをkirokuフォルダにコピーをしようと、上記のWSHを書きました。 (当方 WSHとVBスクリプトの違いはよくわかりません。) ところが実行すると スクリプト: C:\WINDOWS\デスクトップ\kopi.vbs 行: 2 文字: 82 エラー: Sub プロシージャを呼び出すときに、かっこを使うことはできません。 コード: 800A0414 ソース: Microsoft VBScript コンパイル エラー とエラーになります。  たぶん ” の使い方が悪いと思うのですが、どうもうまくいきません。 どこが悪いか指摘してください。 当方 ME使用してます。  フロッピーにバックアップを取るために毎回コピーと圧縮を繰り返しているので自動化できないかと考えてます。 

質問者が選んだベストアンサー

  • ベストアンサー
  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

最初の2行は以下の文が正しいです。 Set fs = CreateObject("Scripting.FileSystemObject") fs.CopyFile "C:\WINDOWS\デスクトップ\作業時間.xls","C:\WINDOWS\デスクトップ\kiroku\作業時間.xls" という事でcopyfileは括弧()で括るものでは有りません。 WHS(WindowsHostScripts)の略でVBScriptやJavaScriptで記述しておけばいいのです。

norinori55
質問者

お礼

ありがとうございました。 括弧がいらなかったのですね。 WSHのエディタ(誰が作ったがわからない)を使用しているのですが、そのヘルプには括弧が記載されていたため悩んでしまいました。

その他の回答 (2)

  • zealzany
  • ベストアンサー率35% (19/53)
回答No.3

訂正 lha32 a "C:\My documents\xxx.lzh" "C:\My documents\xxx.xls"

参考URL:
http://www.asahi-net.or.jp/~GI8S-TKUC/
norinori55
質問者

お礼

 ありがとうございました。よくよんで挑戦します。

  • zealzany
  • ベストアンサー率35% (19/53)
回答No.2

ファイルの圧縮に関しては LHA32 などのオプションを定義できるソフトを利用してみてはいかがでしょうか。unlha.dll 要 lha32 "C:\My documents\xxx.lzh" "C:\My documents\xxx.xls"を実行するようにすればできます。

関連するQ&A

  • VBSで作成したフォルダにファイルをコピー出来ない

    いつもお世話になっております。 表題に関してなのですが、VBSでFileSystemObjectを利用してフォルダを作り、 そのフォルダにファイルをコピーするという内容のスクリプトを作成しています。 ですが、フォルダは無事に出来るのですが、ファイルをコピーしようとすると、 「書き込み出来ません」 と出て、コピーされません。 fso.CopyFileのところで、エラーが発生してるようです。 CopyFileメソッドの代わりにCopyコマンドで実行するように記述すると 問題なくコピーされます。 解決方法等ございましたら、ご教授ねがいます。

  • [VBS]ファイルコピーで怪奇現象

    FileSystemObjectでファイルをコピーしたく、下記のようなコードを書きました。 SYSFILEはファイル名です。(拡張子なし) ******************************************************* Dim objFileSys SYSFILE Set objFileSys = CreateObject("Scripting.FileSystemObject") objFileSys.CopyFile("C:\TEST\", "C:\REAL\SYSFILE") C:\REAL\SYSFILE"を編集して"C:\REAL\SYSFILE_NEW"を作成(コード省略) SYSFILE_NEWを読み込んで最終行の番号を取得(コード省略) ’取得した番号にリネームコピー objFileSys.CopyFile("C:\REAL\SYSFILE_NEW", "C:\REAL\XXX")←★  ******************************************************* ★のCopyFileで「ファイルが見つかりません」のエラーになります。 "C:\REAL\SYSFILE_NEW"は確実に作成されて存在しますが発生します。 おかしいと思って直前にFileExistsをしてもFalseになります。 エクスプローラー上では確かに存在するし、コピーもできます。 実際はファイル名の箇所は変数名なので中身を確認しようと★の直前行で echoで出力してみたが、変数の中身も問題ありませんでした。 おかしいのがその後です。 今度はエラーにならずに処理が通りました。 直前にechoでダイアログを表示させた場合にはエラーが発生しません。 その記述を削除するとまた発生します。 考えられる原因を教えていただきたいです…

  • WSHでファイルとフォルダのコピーをしたい

    こんにちは。 OSはWindows2000,WSHは5.6を使用しています。 WSH(VBScript)で、同一PC内にあるローカルユーザー「suzuki」のマイドキュメントにある全てのファイル、 フォルダ(サブフォルダ)を「takada」に複写したい のですが、最初はコピーできるのですが、2度目以降、 は既に存在しているのでコピーできません(エラーと なります)。 (スクリプトが分からないので)存在チェックはしており ませんが、どのようにコーディングすればよろしいでしょ うか? どうぞよろしくお願いいたします。

  • 特殊フォルダへのファイルコピー

    win10 ofice2016 ユーザレベル:Administrator パソコン利用者に、共通で使用するプログラムのコピー及び起動の設定をexcelマクロで対応しています。 Win10のRS5バージョンアップの影響か、従来動作していたマクロが動作しなくなりました。 c:\A\B.bat を スタートメニュー及び、共通ディスクトップにコピーするマクロ で下記の内容です。 Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile Source:="C:\A\B.bat", Destination:="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\InspecStart.bat" FSO.CopyFile Source:="C:\A\B.bat", Destination:="C:\Users\Public\Desktop\InspecStart.bat" Set FSO = Nothing 上記実行で 実行時エラー'70': 書き込みできません とのエラーが出てしまいます。 ちなみに ' FSO.CopyFile Source:="C:\A\B.bat", Destination:="C:\work\B.bat" はコピーできます。 また、エクスプローダ上でのコピーはできます。 このフォルダへのコピーは管理者権限が必要です。 と表示され、続行でコピー可です。 ファイルのコピーを手動でやれば済むのですが、パソコン等はリースです。 リース更新時に沢山の設定するのは手間なので、特殊フォルダへのコピーを簡単に対応可能な手段があればとのおもいです。 excelマクロにはこだわりませんが、サーバからのファイルコピー等はマクロで実行するので、一緒に起動用のファイルをコピーで対応できたらと思った次第です。 サーバからファイルをc:\A配下へコピー。 Aフォルダ配下の起動ファイルを特殊フォルダ2ケ所に設定したいのです。 よろしくお願いします

  • 他PCへのファイルコピー

    お世話になります。 Webからファイルアップロードしたいのですが、 ファイルサーバーがWebサーバーとは別になっています。 IISで仮想ディレクトリには設定したのですが、 うまくアップできません。 で、ローカルディレクトリにファイルをアップしてから ファイルコピーしようとしたのですが、 やはりできません。 Set objFSO = Server.CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "C:\test\aaa.txt", "\\server1\c:\temp\aaa.txt",True マシンserver1のtempフォルダをネットワークドライブZにしてみて objFSO.CopyFile "C:\test\aaa.txt", "z:\temp\aaa.txt",True としてみてもダメでした。 どうすればアップできるでしょうか? なにか権限の問題でもあるのでしょうか?

  • [WSH] ファイルのコピーができない

    こんにちは。 次のようなスクリプトでFTPフォルダにファイルをコピーしようとしたのですが、カレントフォルダにファイルがコピーされてしまうようです。 どうすれば、FTPフォルダにファイルをコピーできるのでしょうか? var objShell = WScript.CreateObject("Shell.Application"); var objFolder = objShell.NameSpace("ftp://user:password@sitename/directory/"); objFolder.CopyHere("C:\\WINNT\\win.ini"); WScript.Sleep(6000); ※下記のページを参考にさせていただき作成しました。http://homepage3.nifty.com/aya_js/wsh/wsh25.htm

  • 【VBA】任意のファイルの一括操作について

    こちらの識者の方々にはいつもお世話になっております。 VBAで教えていただきたいことがあり質問いたします。 C:\aaa\に下記のexcelファイルがあります。 【見本】東京.xls 【見本】埼玉.xls 【見本】神奈川.xls 【見本2】千葉.xls これを 1.C:\bbb\へコピーし、 2.ファイル名の【見本】と【見本2】の文字列を削除し、 3.拡張子の前に本日の日付をyyyymmdd形式で追加し、 4.それぞれのexcelファイルのsheet1のa1セルにyyyymmdd形式で本日の日付を入力する。 というマクロを組みたいと思っています。 一つ一つnameステートメントでファイル名を変更したり、 open→Range("A1").Value→closeとやってもできるんですが、 条件もすこぶる単純ですし、一括でできるようなコードはないかと思っています。 最終的な期待するファイルのフルパスは↓のようになります。 C:\bbb\東京20130426.xls C:\bbb\埼玉20130426.xls C:\bbb\神奈川20130426.xls C:\bbb\千葉20130426.xls C:\bbb\へコピーするところまでは調べてできたのですが、 その先がこれというものを見つけられず。 どなたかご教示いただけないでしょうか。 宜しくお願い致します。 Sub Test() Dim objFSO As FileSystemObject Const cnsSOUR = "C:\aaa\*.xls" Const cnsDEST = "C:\bbb\" Set objFSO = New FileSystemObject objFSO.CopyFile cnsSOUR, cnsDEST, True Set objFSO = Nothing End Sub

  • ファイルシステムオブジェクトのメソッドについて

    こんにちは、皆さん。 以下のプログラムでコピーしようとしたら、 オブジェクトがメソッド、プロパティをサポートしてないという メッセージが表示されてしまいました。 Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "c:\aaa.txt", "c:\temp\" Set fso = CreateObject("Scripting.FileSystemObject") Set src = fso.GetFile("c:\aaa.txt") fso.Copy "c:\temp\" こういった場合、どんなメソッドがあるか確認するには どうしたらよいでしょうか? また、ファイルをコピーするにはどうしたらよいでしょうか? よろしくお願いします。

  • ファイルコピー後の名前の指定。(コピー ~ )以外

    こんにちは。 ウィンドウズ上での操作に関して、お聞きしたい事がありましたので投稿させて頂きました。 例えば ・「AAA.xls」というファイルがあるとします。 ・そのファイルをフォルダ上でコピー(Ctrl+C)する。 ・そのフォルダ上で貼り付け(Ctrl+V)を行う。 ・そうするとファイル名は「コピー ~ AAA.xls」となります。 上記に記載したようなファイル名を「コピー ~ 」ではなく他の名前に指定出来ないか、という質問でした。 出来れば「AAA-2.xls」のような名前に指定が出来ればいいと考えております。 何か設定の変更で解決出来るのでしょうか? 知恵をお貸しください。宜しくお願い致します。

  • VBSでサーバからのファイルコピーができません

    下記ソースについて、コピー元ファイルがDやCドライブにあるものは 指定したコピー先にファイルを貼り付けることができるのですが、 コピー元がサーバー上である場合、指定したコピー先にファイルが 貼りつきません。何か特別な処理等が必要でしょか? ご教授ください。 Dim fs Dim msg Dim f Dim copyFrom copyFrom = Array("D:\VBS\", "D:\VBS\AB\") Dim Ar Const copyTo = "D:\VBS\コピー先\" Do '日付入力のインプットボックスを出力 hizuke = InputBox("日付を入力してください。" & vbCr & vbCr & "例)2000-01-01") 'インプットボックスの入力値が空白である If hizuke = "" Then '日付入力を促すメッセージ出力 MsgBox "日付を入力してください。" Exit Do End If 'インプットボックスの入力値が10文字である If Len(hizuke) = 10 Then 'エラーが発生しても次の処理をすすめる On Error Resume Next '指定した日付の確認ダイアログを表示 msg = MsgBox(hizuke & "でよろしいですか?", vbYesNoCancel) '日付の確認ダイアログでYesを選択 If msg = vbYes Then For Each Ar In copyFrom MsgBox(Ar) 'ファイルオブジェクトを作成 Set fs = CreateObject("Scripting.FileSystemObject") 'コピー元フォルダに存在するファイルを読み込む For Each f In fs.GetFolder(Ar).Files '指定した日付を含むファイル名を検索 If InStr(f.Name, hizuke) > 0 Then MsgBox(copyFrom & "フォルダ") MsgBox(f.Name & "名前") fs.CopyFile Ar & f.Name, copyTo End If Next Next Exit Do Else Exit Do End If Else MsgBox("入力値が不正です。") End If Loop