VBScript: ファイルをコピーする方法 2通り FileCopy, Copy
VBScriptでファイルをコピーする場合は、 ファイルシステムオブジェクトのCopyFileメソッドを使う方法と、 FileオブジェクトのCopyメソッドを使う方法があります。
2つの方法について順番に解説します。
ファイルシステムオブジェクトのCopyFileメソッド
ファイルシステムオブジェクトのCopyFileメソッドを使ってファイルをコピーする場合は、 次のように記述します。
書式
ファイルシステムオブジェクト.CopyFile コピーするファイル, コピー先のパス
次のサンプルコードではファイル「d:\test\vbs\a.txt」をtempフォルダにコピーします。
Dim strFilePath Dim strDir 'コピーするファイルのパス strFilePath = "d:\test\vbs\a.txt" 'コピー先のパス strDir = "d:\test\vbs\temp\" 'ファイルシステムオブジェクト作成 Set objFS = CreateObject("Scripting.FileSystemObject") 'ファイルコピー objFS.CopyFile strFilePath, strDir, True
まずファイルシステムオブジェクトを作成し、 CopyFileメソッドを使用します。
複数ファイルをコピーしたい場合
複数のファイルをまとめてコピーしたい場合は、 ワイルドカード(*)を使ってコピーするファイルを指定できます。
次のように「*.txt」と指定すると、 拡張子が「.txt」のファイルを一括でコピーできます。
'コピーするファイルのパス strFilePath = "d:\test\vbs\*.txt"
FileオブジェクトのCopyメソッド
FileオブジェクトのCopyメソッドを使ってファイルをコピーする場合は、 次のように記述します。
書式
Fileオブジェクト.Copy コピー先のパス
次のサンプルコードも同じようにファイル「d:\test\vbs\a.txt」 を「temp」フォルダにコピーします。
Dim strFilePath Dim strDir 'ファイルパス strFilePath = "d:\test\vbs\a.txt" 'コピー先のパス strDir = "d:\test\vbs\temp\" 'ファイルシステムオブジェクト作成 Set objFS = CreateObject("Scripting.FileSystemObject") 'ファイルオブジェクト作成 Set objFile = objfs.GetFile(strFilePath) 'ファイルコピー objFile.Copy strDir
ファイルシステムオブジェクトを作成した後に、 Fileオブジェクトを作成するためひと手間増えます。
ファイルの指定にワイルドカードは使えない
Fileオブジェクトを作成する際に、 ワイルドカードを使ってファイルを指定すると 「実行時エラー: ファイルが見つかりません。」というエラーが発生します。