機能概要
- 特定のファイルを
- 特定のフォルダに
- 特定のファイル名でコピーする
- コピー先のフォルダが存在しない場合は自動で作成
- エラー発生時には詳細メッセージを表示
ファイル名やフォルダパスはスクリプト内の定数として定義しており、メンテナンス性にも配慮しています。
サンプルコード(copy_file.vbs)
Option Explicit
' 定数定義(必要に応じて書き換えてください)
Const SOURCE_FILE = "C:\SourceFolder\example.txt" ' コピー元のファイルパス
Const DEST_FOLDER = "C:\DestinationFolder" ' コピー先のフォルダパス
Const DEST_FILE_NAME = "copied_example.txt" ' コピー後のファイル名
' FileSystemObject の作成
Dim fso, destPath
Set fso = CreateObject("Scripting.FileSystemObject")
' コピー先のフルパスを作成
destPath = fso.BuildPath(DEST_FOLDER, DEST_FILE_NAME)
On Error Resume Next
' フォルダが存在しない場合は作成
If Not fso.FolderExists(DEST_FOLDER) Then
fso.CreateFolder DEST_FOLDER
If Err.Number <> 0 Then
WScript.Echo "エラー: コピー先フォルダの作成に失敗しました: " & Err.Description
WScript.Quit 1
End If
End If
' ファイルのコピー(True: 上書き許可)
fso.CopyFile SOURCE_FILE, destPath, True
' エラーチェック
If Err.Number <> 0 Then
WScript.Echo "エラー: ファイルのコピーに失敗しました: " & Err.Description
WScript.Quit 1
Else
WScript.Echo "ファイルは正常にコピーされました: " & destPath
End If
' クリーンアップ
Set fso = Nothing
実行方法
- 上記コードをメモ帳などに貼り付け、
copy_file.vbs
という名前で保存します。 - 保存したファイルをダブルクリックまたはコマンドラインから実行します。
補足
fso.CopyFile
の第3引数にTrue
を指定することで、同名ファイルがあった場合は上書きされます。- エラー処理は
On Error Resume Next
を使って実装していますが、用途によっては詳細なエラーハンドリングを追加することも可能です。
コメント