Пакетный файл останавливается в той же точке на некоторых компьютерах, но не на всех - PullRequest
0 голосов
/ 30 октября 2019

Я выполняю резервное копирование наших удаленных машин Windows7 на сервер и использую командный файл для резервного копирования ограниченных папок. Мой пакетный файл работает на 15 компьютерах, но на 6 он останавливается в той же точке.

код сохраняется как пакетный файл и запускается ночью с помощью планировщика задач Windows.

Я думаю, что проблема связана со строкой кода MSHTA, но эта строка работает в большинстве мест безпровал. Любые предложения будут полезны.

спасибо,

К.

Я разбил код на более мелкие разделы, думая, что это проблема, с добавлением тайм-аута (ов)между подводными лодкамиЭто не помогло - код вернулся к полному пакетному файлу, но я оставил тайм-аут (ы) на месте.

:BACKUP \Users (this sub does work)
ECHO ------------------------------------------------------- >> logfile
ECHO %date%, %time% The following files are being copied to \Users: >> logfile
xcopy "C:\Users" "F:\Users" /i /d /e /y /v /j /z /exclude:ExcludeList.txt>> logfile
timeout 60
ECHO. >> logfile

:Empty Recycle Bins (appears to work properly)
ECHO %date%, %time% Empty Recycle Bin From All User Accounts >> logfile
rd /s %systemdrive%\$Recycle.bin /q
ECHO %date%, %time% Finished Empty Recycle Bin From All User Accounts >> logfile
timeout 60
ECHO. >> logfile

:if exist ME del ME (this is where the code stops...)
Mshta VBScript:Execute("If Month(Now)<>Month(DateAdd(""d"",1,Now)) Then CreateObject(""Scripting.FileSystemObject"").CreateTextFile(""C:\BackUpHistory\ME""):End If:Close")
if not exist "C:\BackUpHistory\ME" goto Finish
del "C:\BackUpHistory\ME"
ECHO ------------------------------------------------------- >> logfile
ECHO %date%, %time% Removing Files/Folders from UserProfiles Downloads older than 30 days >> logfile
ForFiles -p "%userprofile%\Downloads" /s /d -30 /c "cmd /c IF @isdir == TRUE rd /S /Q @path"
ECHO %date%, %time% Finished deleting Downloads older than 30 days >> logfile
timeout 60
ECHO. >> logfile

:Finish
for /f "tokens=1-6 delims=/: " %%d in ("%date%" "%time%") do rename "logfile" %%g-%%e-%%f (%%d) @ %%h%%i.txt
timeout 15
xcopy "C:\BackUpHistory" "G:\BackUpHistory" /i /d /e /y /v /j /z /exclude:ExcludeList.txt>> logfile
timeout 60

Я не могу сообщить о каких-либо сообщениях об ошибках, поскольку он запускается ночью из Windowsзадача шдулер. Ожидаемые субмарины выглядят следующим образом:

: Пустые корзины - Пустые корзины для всех пользователей

: если существует ME del ME - определить, является ли сегодняшний день последним днеммесяц. Если это так, удалите все загрузки со всех учетных записей пользователей старше 30 дней. Шаги для этого теста состояли в том, чтобы создать файл ME в последний день (это была ловушка), если файл не существует, перейдите в подпрограмму Finish, в противном случае продолжите очистку.

: Finish - простопереименуйте файл журнала с отметкой даты и времени

...