分かりやすく、使いやすく。

ファイルをコピーする方法

スポンサーリンク

VBScript でファイルをコピーするには、ファイルシステムオブジェクトの Copy メソッドを使用します。

  1. コピー先のファイルが存在する場合、上書きコピーする方法
  2. コピー先のファイルが存在しない場合のみコピーする方法


コピー先のファイルが存在する場合、上書きコピーする方法

上書きコピー時の書式は次の通りです。

VBScript(書式)
1
2
3
4
5
6
7
8
9
10
'ファイルを上書きでコピーする。
Call ファイルシステムオブジェクト.Copy(コピー元, コピー先)
 
'以下も同じ。
Call ファイルシステムオブジェクト.Copy(コピー元, コピー先, True)
 
'※3つ目の引数は次の通り。
' True:コピー先にファイルがある場合、上書きする。
' false:コピー先にファイルがある場合、エラーを発生させる。
 

サンプルコードは次の通りです。

VBScript(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Option Explicit
 
Dim objFileSys
Dim strFilePathFrom
Dim strFilePathTo
 
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
'コピー元のファイルのパスを指定
strFilePathFrom = "c:\temp\コピー元.txt"
strFilePathTo   = "c:\temp\コピー先.txt"
 
'エラー発生時にも処理を続行するよう設定
On Error Resume Next
 
'ファイルを上書きコピー
Call objFileSys.CopyFile(strFilePathFrom, strFilePathTo)
 
'元ファイルが無いなど、エラーになった場合の処理
If Err.Number <> 0 Then
  'ここにエラー時の処理を記述
  WScript.Echo "ファイルコピー時にエラーが発生しました。" & vbCrLf & _
               "エラー番号:" & Err.Number & vbCrLf & _
               "エラー詳細:" & Err.Description
  
  'エラー情報をクリアする。
  Err.Clear
End If
 
'「On Error Resume Next」を解除
On Error Goto 0
 
Set objFileSys = Nothing  

コピー先のファイルが存在しない場合のみコピーする方法

上書きコピー時の書式は次の通りです。

VBScript(書式)
1
2
'コピー先にファイルが存在しない場合のみコピー。ある場合はエラーが発生する。
Call ファイルシステムオブジェクト.Copy(コピー元, コピー先, False) 

サンプルコードは次の通りです。

VBScript(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit
 
Dim objFileSys
Dim strFilePathFrom
Dim strFilePathTo
 
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
'コピー元のファイルのパスを指定
strFilePathFrom = "c:\temp\コピー元.txt"
strFilePathTo   = "c:\temp\コピー先.txt"
 
'エラー発生時にも処理を続行するよう設定
On Error Resume Next
 
'コピー先に同名のファイルが無い場合のみコピー
Call objFileSys.CopyFile(strFilePathFrom, strFilePathTo, False)
 
'コピー先に同名のファイルがある場合や元ファイルが無い等
'エラーになった場合の処理
If Err.Number <> 0 Then
  'ここにエラー時の処理を記述
  WScript.Echo "ファイルコピー時にエラーが発生しました。" & vbCrLf & _
               "エラー番号:" & Err.Number & vbCrLf & _
               "エラー詳細:" & Err.Description
  
  'エラー情報をクリアする。
  Err.Clear
End If
 
'「On Error Resume Next」を解除
On Error Goto 0
 
Set objFileSys = Nothing  
スポンサーリンク