トッカンソフトウェア

WSH 本日更新されたファイルを別フォルダにコピー

WSHを利用したサンプルです。本日更新されたファイルを別フォルダにコピーします。
実際に編集したい処理に変更して下さい。


				
Dim fromDir,toDir

fromDir = "C:\work"
toDir = "C:\backup"

Dim objFSO
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

Dim objBaseDir
Dim objFile

Dim updDate,sysDate,workDate

'システム日付を取得(yyyyMMdd)
sysDate = getDate(Now())

exeDir fromDir 

'メイン処理
Sub exeDir(path)
	
	Dim workDir
	Dim objDir
	
	'サブフォルダの位置を取得
	If path = fromDir Then
		workDir = toDir + "\"
	Else
		workDir = toDir + "\" + Mid(path, Len(fromDir) + 2) + "\"
	End If

	'対象フォルダを処理
	Set objBaseDir = objFSO.getFolder(path)

	'ファイル一覧
	for each objFile in objBaseDir.files
	
		'更新日付を取得(yyyyMMdd)
		updDate = getDate(objFile.datelastmodified)

		'日付が同じ場合、指定フォルダにコピー
		If updDate = sysDate Then

			'フォルダ作成
			mkdir workDir
		
			'ファイルコピー
			objFSO.CopyFile objFile.path, workDir, True
		End If
	next 
	
	'フォルダ一覧
	for each objDir in objBaseDir.subFolders
		
		'サブフォルダを処理
		exeDir objDir.path
	next
End Sub

'日付をyyyyMMdd形式に変換
Function getDate(date)
	getDate= Year(date)
	getDate= getDate & Right("0" & Month(date) , 2)
	getDate= getDate & Right("0" & Day(date) , 2)
End Function

'親フォルダに遡ってフォルダ作成
Sub mkdir(path)
	If Not objFSO.FolderExists(path) Then
		mkdir objFSO.GetParentFolderName(path)
		objFSO.CreateFolder path
	End If
End Sub

Set objFSO = Nothing

wscript.echo "終了"


			

ページのトップへ戻る