2017-03-01 5 views
0

おはようございます、 私はプログラミングの初心者ですので、何か問題があればごめんなさい。 フォルダから別のファイルへのバックアップ用にVBSにコードを書きました。 私の問題は、両方のフォルダ内のファイルの日付を比較し、ファイルが新しいか、日付が変更された場合にのみコピーを許可することです。 ここで私のコードは、誰かが私に問題を見つけるのを助けることができますか? 私が試してみましたが、それは日付の比較と新しいファイルのみのコピー

' Copy a Folder 


'Const OverWriteFiles = False 
Dim strSourceFolder, strDestFolder 
strSourceFolder = "E:\test1" 
strDestFolder = "C:\test1" 


Set objFSO = CreateObject("Scripting.FileSystemObject") 
objFSO.CopyFolder "strSourceFolder" , "strDestFolder" 

For each file in StrSourceFolder 
    ReplaceIfNewer ("file, strDestFolder") 
Next 

Sub ReplaceIfNewer (SourceFile, DestFolder) 

    Dim DateModifiedSourceFile, DateModifiedDestFile 
    DateModifiedSourceFile = SourceFile.DateModified() 
    DateModifiedDestFile = DestFolder & "\" & SourceFile.DateModified() 

    If DateModifiedSourceFile < DateModifiedDestFile then 
     Copy SourceFile to SourceFolder Else 
     End If 


' Verify that a Folder Exists 


'Set objFSO = CreateObject("Scripting.FileSystemObject") 

If objFSO.FolderExists("strDestFolder") Then 
MsgBox "Backup Copy Done." & vbCrLf & (Day(Now) & "\" & Month(Now) & "\" & Year(Now)) , Vbinformation 
    Set objFolder = objFSO.GetFolder("strDestFolder") 
Else 


MsgBox "Folder does not exist." , vbCritical , "Folder does not exist." 



End if 

おかげで作業して我慢していません!

+0

あなたは[Robocopyの]に興味がある可能性があり(https://technet.microsoft.com/en-us/library/cc733145%28v=ws.11%29.aspx?f=255&MSPPError= -2147217396) –

答えて

0

.DateModifiedはVBScriptではありません。 hereを開始してください。 DateDiffがありますが、日付がフードの下で倍になるため、<との比較も機能します。コードでは:

>> Set f = CreateObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName) 
>> dlm = f.DateLastModified 
>> WScript.Echo TypeName(dlm), dlm, "(german locale)" 
>> dlmn = DateAdd("s", 2, dlm) 
>> WScript.Echo TypeName(dlmn), dlmn, "(german locale)" 
>> WScript.Echo DateDiff("s", dlmn, dlm), DateDiff("s", dlm, dlmn), CStr(dlm < dlmn) 
>> WScript.Echo CDbl(dlm) 
>> WScript.Echo CDbl(dlmn) 
>> 
Date 22.11.2013 13:09:53 (german locale) 
Date 22.11.2013 13:09:55 (german locale) 
-2 2 Wahr 
41600,5485300926 
41600,5485532407