我正在尝试编写一个函数,将服务器文件上的修改日期与客户端的日期进行比较,如果客户端文件较旧,则将其覆盖。这作为组策略启动脚本的一部分运行。创建tmp苍蝇是作为调试步骤,以查看代码在哪里卡住。创建了copyfile.tmp,但没有创建copydone.tmp。这些文件都不是只读的,并且在本地SYSTEM上下文中运行,该上下文具有所需的所有访问权限。
文件全部存在。如果客户端没有该文件,我已经在脚本的前面部分成功地将服务器文件复制到了客户端。 (oFSO
是文件系统对象,strWinTemp
是Windows中系统的临时目录;前面已定义)
'Replace clientfile if older than servfile
Sub GetNewerFile(clientfile,servfile)
Dim dtmLocalDate
Dim dtmServerDate
Dim oLocalFile
Dim oServerFile
Set oLocalFile = oFSO.GetFile(clientfile)
dtmLocalDate = oLocalFile.DateLastModified
Set oServerFile = oFSO.GetFile(servfile)
dtmServerDate = oServerFile.DateLastModified
If Not oFSO.FileExists(strWinTemp & "\" & "getnewerfile.tmp") Then oFSO.CreateTextFile(strWinTemp & "\" & "getnewerfile.tmp")
If DateDiff("d", dtmServerDate, dtmLocalDate) > 0 Then
'dtmServerDate is more recent than dtmLocalDate, comparison by "day"
If Not oFSO.FileExists(strWinTemp & "\" & "copyfile.tmp") Then oFSO.CreateTextFile(strWinTemp & "\" & "copyfile.tmp")
oFSO.CopyFile oServerFile, oLocalFile, 1
If Not oFSO.FileExists(strWinTemp & "\" & "copydone.tmp") Then oFSO.CreateTextFile(strWinTemp & "\" & "copydone.tmp")
End If
End Sub
答案 0 :(得分:-2)
我用以下内容替换了DateDiff检查和End Sub之间的行:
If oFSO.FileExists(clientfile) then oFSO.DeleteFile(clientfile)
oFSO.CopyFile servfile, clientfile, TRUE