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オブジェクトを作成する際に、 ワイルドカードを使ってファイルを指定すると 「実行時エラー: ファイルが見つかりません。」というエラーが発生します。

VBScript入門