[英]VBScript hanging on CopyFile operation
我正在嘗試編寫一個函數,將服務器文件上的修改日期與客戶端的日期進行比較,如果客戶端文件較舊,則將其覆蓋。 這作為組策略啟動腳本的一部分運行。 創建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
我用以下代碼替換了DateDiff檢查和End Sub之間的行:
If oFSO.FileExists(clientfile) then oFSO.DeleteFile(clientfile)
oFSO.CopyFile servfile, clientfile, TRUE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.