• 締切済み

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

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

多分#1のご回答で解決と思うが。 そもそもエラーの、原因が判るものは(エラーコードと原因が1義的なもの)限られる。 デバッグで、いままで苦労したことないのではないですか。大体他人に説明して、デバッグをやってもらってわかるようなものは初歩的なものだ。 それにそのフォルダの実在、コピー元ファイルの(実行直前状態で)実在確認なども念のためすませるものだ。 どうなっているのかな。

  • Ctrl-Z727
  • ベストアンサー率79% (135/170)
回答No.1

CopyFile メソッドの構文を確認しましょう。(下記ページ) http://www.mhl.janis.or.jp/~winarrow/vbscript/htm/vbs268.htm <ご参考> c:\temp\etc 配下のテキストファイルを c:\temp にコピーする例です。 Dim fso,gtf set fso = CreateObject("Scripting.FileSystemObject") set gtf = fso.getfolder("c:\temp\etc") fso.CopyFile "c:\temp\*.txt", gtf

関連するQ&A

  • VBS でファイルをコピーする際にコピー状況を表示させる

    現在VBSで、ファイルのコピー部分を作っています。 記述コード↓ fso.CopyFile コピー元ファイル , コピー先フォルダ, True ' コピー自体は出来るのですが、コピー中に何も表示されないので 大容量のファイルをコピーしている際に何も表示されない時間が長く実行されているのか不安になります。 コピー状況を明示させるようなコマンドは無いのでしょうか?? 解る方いらっしゃいましたら教えてください。 また、全然関係ないのですが、わかれば教えてほしい点が1点。 Run関数でプログラムを実行させるコードで昔記述したものがあり、 オブジェクト名.Run "C:\temp\SP3\test.vbs /q/z" こういったのがあるんですけど、 /qと/zが何を表すのかわからなくなってしまいました。 Run関数を調べると、オプションの値は0から始る数字になっていて /qとか/zを設定するなんていう説明が見当たりませんでした。 解る方いらっしゃいましたら教えてください。

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

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

    こんにちは、皆さん。 以下のプログラムでコピーしようとしたら、 オブジェクトがメソッド、プロパティをサポートしてないという メッセージが表示されてしまいました。 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\" こういった場合、どんなメソッドがあるか確認するには どうしたらよいでしょうか? また、ファイルをコピーするにはどうしたらよいでしょうか? よろしくお願いします。

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

    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ケ所に設定したいのです。 よろしくお願いします

  • VBSによるファイルコピー

    教えてください。 Aフォルダの中にファイルが3つ有るとします。 あ.jpg い.jpg COPY.VBS Aフォルダ内 COPY.VBS を実行すると、 あ.jpg→C:\ い.jpg→C:\PIC とファイルを異なる場所に移動したいのです。 上記の処理をする場合、Aフォルダがどちらか 決まった場所に置いて有る(C:\等)の場合は 解るのですが、実行者がAフォルダをどこに 置き実行するか解りません、VBSから見たときに 自分(vbs)と同じフォルダに有るファイル と言うパスで上記のファイル移動を実現する事は 可能でしょうか? 以上よろしくお願いします。

  • VBSでファイル作成をするとき

    VBスクリプトでファイルを生成するソースを書いたのですがそれをバッチで実行するようにしてありますが例えばPCが起動していなく実行できなかった場合次回実行時に「もしこの名前のファイルがなかったら先に 作るはずだったファイルを作る」といったようなのが欲しいと思っております。 こういうのはプログラムで先にファイル検索をさせて無かったら作るといった感じになるのでしょうか? ファイル検索をさせるVBSはFileSystemObjectを使う方法になる以外に無いでしょうか? (ウイルスソフトが反応するため・・・・・) まだこの手の記述方法がわからないのでネットでサンプルを探したのですがなかったのでご存知の方ヒントをいただけないでしょうか? よろしくお願いします。 例:VBSCRIPTを1月にタスク実行でAAA1.txtを作成。 2月にこのタスクを実行したとき先にAAA1.txtがあるかを確認してあればAAA2.txtを作る。 もし無ければAAA1.txtを作る条件を当てはめ作ってからAAA2.txtを作る。

  • ファイルをコピーするvbs

    ファイルをコピーするvbsってどう書けばよいのでしょうか? このvbsを実行すると、その後貼り付けでファイルがペーストされるように、クリップボードにファイル自身をコピーしておきたいです。 出来れば.NET不要でvbsファイルのみで実現出来るとありがたいです。

  • ExcelVBAでファイルコピー

    ExcelVBA2000です。 VBAでファイルコピーしたいのですがどのようにしたらよいのでしょうか。 Dim FromFile As String ' コピー元ファイル Dim ToFile As String ' コピー先ファイル Copy FromFile, ToFile とか FileSystemObject.CopyFile FromFile, ToFile とかのようには思うのですが出来ません。

  • 再度:VBSで指定したフォルダー内のファイルを書き出さないようにする

    先ほども似たような質問をしました。 あるフォルダの中にあるファイル名の一覧をファイル"f.name.txt"を書き出したいのですが"新しいフォルダ"のなかにあるファイルは書き出さないようにしたいです。下記のVBSは"新しいフォルダ"のなかに更にフォルダが階層的に存在するときには"新しいフォルダ"の中のファイルも全て書き出してしまいます。 "新しいフォルダ"の中にフォルダがない場合は正しく動きます。 "新しいフォルダ"の中にフォルダが階層的にあっても"新しいフォルダ" の中にあるファイル名を書き出さないようにするにはどうしたらよいのでしょう? ************************************************************** Set FSO = CreateObject("Scripting.FileSystemObject") Set fl = WScript.CreateObject("Scripting.FileSystemObject") Set abc = fl.CreateTextFile("f.name.txt") ShowSubfolders FSO.GetFolder(".") Sub ShowSubFolders(Folder) If Folder.Name <> "新しいフォルダ" Then For Each File in Folder.Files 'Folder内のファイルを列挙する Fname = File.name abc.Write Folder & "\" & Fname & vbCrLf Next End If For Each Subfolder in Folder.SubFolders 'Folder内のフォルダを列挙する ShowSubFolders Subfolder '再帰呼び出し Next End Sub abc.Close

  • ファイルコピーVBS

    ファイルコピーVBS ファイルをコピーするVBScriptの書き方を教えてください。 コピー対象ファイルはEドライブのDataフォルダに入っています。 コピー対象ファイルは拡張子がdocかつファイルサイズが1MB以上のファイルだけです コピー先はHドライブのDataフォルダ直下です。 毎週日曜日の午前2時にWindowsのタスク機能等で実行する予定です。 WindowsServer2003R2StandardEditionで実行します。 その他必要な情報があれば言って下さい。 よろしくお願いします。