VBScript висит на операции CopyFile - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь написать функцию для сравнения даты, измененной в файле сервера, с клиентской и перезаписать файл клиента, если он старше.Это выполняется как часть сценария запуска групповой политики.Файлы 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

1 Ответ

0 голосов
/ 15 октября 2018

Я заменил строки между проверкой DateDiff и End Sub следующим образом:

If oFSO.FileExists(clientfile) then oFSO.DeleteFile(clientfile)
oFSO.CopyFile servfile, clientfile, TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...