【ある日付以降に作成したファイルをコピー】
フォルダ内のある日付以降のファイルをコピーしたいと思い、以下のようなVBSCriptを作成してみました。
<実行の方法>
>cscript DateCompCopy.vbs 日付(YYYY/MM/DD形式) コピー元フォルダ名 コピー先フォルダ名
<実行例>
>cscript DateCompCopy.vbs 2006/08/17 D:moto D:saki
フォルダ内のある日付以降のファイルをコピーしたいと思い、以下のようなVBSCriptを作成してみました。
<実行の方法>
>cscript DateCompCopy.vbs 日付(YYYY/MM/DD形式) コピー元フォルダ名 コピー先フォルダ名
<実行例>
>cscript DateCompCopy.vbs 2006/08/17 D:moto D:saki
DateCompCopy.vbs ''引数の宣言 Set arg = WScript.Arguments ''引数チェック If ( arg.Count <> 3 ) Then WScript.StdOut.WriteLine "異常終了 理由:引数不正 " & arg.Count WScript.Quit -1 End If ''入力ファイル名を引数の値よりセット sDate = arg(0) sFolder = arg(2)&"" sRootFolder = arg(1) ''オブジェクトの宣言等 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(sRootFolder ) Call CopyFolder(objFolder) Sub DateCompCopySub(objFolder ,isDate ,isFolder2 ) ''ファイルがなくなるまで繰り返す。 For Each objFile In objFolder.Files ''ファイルの存在確認 If(objFSO.FileExists(objFile.Path)) Then ''ファイルの日付チェック If(LEFT(objFile.DateLastModified,10) > isDate ) Then objFSO.CopyFile objFile.Path ,isFolder2 , overwrite WScript.Echo " " & objFile.Path & " " & objFile.DateLastModified & " をコピーしました。" End If End If Next End Sub Sub CopyFolder(objFolder) 'フォルダ内のファイルをコピー Call DateCompCopySub(objFolder,sDate,sFolder) ' ' 再帰的にサブフォルダのreadonly属性を解除 For Each objSubFolder In objFolder.SubFolders CopyFolder(objSubFolder) Next End Sub |