簡體   English   中英

VBScript掛在CopyFile操作上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM