Назад | Перейти на главную страницу

Проблемы с папками mkdir, robocopy, to date \ time в циклическом пакетном файле

Я искал везде, но не нашел решения. Я не уверен, что здесь происходит, но мне отчаянно нужна помощь в отношении этой проблемы. Я запускаю командный файл (сценарий для монитора игрового сервера / аварийного перезапуска).

Я решил добавить фрагмент архива файла журнала, который создает папку с указанием даты и подпапку с указанием времени, затем robocopy / перемещает журналы из основной папки в папку архива, которая создается каждый раз при перезапуске игрового сервера (3 часа) .

Я протестировал фрагмент отдельно и в остальной части пакетного сценария, и он работает нормально, я также подтвердил, что он работает в планировщике задач, из которого сценарий запускается при запуске сервера, однако я заметил, что он может работать один раз, тогда в следующий раз, когда ему потребуется создать новый каталог и переместить журналы на новую дату \ время, он будет перемещен в предыдущую папку даты и времени и не создаст новый каталог времени, это пример, который я использую,

@echo off
set PROFILE=C:\GameServers\Server1\Profile
set SVR_LOGS=C:\GameServers\Server1\Profile\Logs\Archived_Logs
set ARC_FOLDER=%date:~10,4%_%date:~7,2%_%date:~4,2%\%time:~0,2%-%time:~3,2%-%time:~6,2%

echo Archiving Logs...
timeout 3 >nul
cd %SVR_LOGS%
mkdir %ARC_FOLDER%
robocopy *.log %PROFILE% %SVR_LOGS%\%ARC_FOLDER% /mov
robocopy *.adm %PROFILE% %SVR_LOGS%\%ARC_FOLDER% /mov
robocopy *.rpt %PROFILE% %SVR_LOGS%\%ARC_FOLDER% /mov
robocopy *.mdmp %PROFILE% %SVR_LOGS%\%ARC_FOLDER% /mov
cls
echo Log Archive Complete!...
timeout 3 >nul
cls

Я также пробовал другие методы сделать это, но, похоже, он делает то же самое, независимо от того, каким образом он у меня есть, хост игрового сервера - это виртуальный сервер, работающий на сервере 2016 на выделенном сервере с сервером 2019 (длинная история о том, почему это не волнуйтесь , сокращенно для тестовых целей)

Вы должны использовать это:

@echo off
set PROFILE="C:\GameServers\Server1\Profile" 
set SVR_LOGS="C:\GameServers\Server1\Profile\Logs\Archived_Logs"
 set ARC_FOLDER="%date:~10,4%_%date:~7,2%_%date:~4,2%\%time:~0,2%-%time:~3,2%-%time:~6,2%" 
echo Archiving Logs... 
timeout 3 >nul 
Pushd %SVR_LOGS% 
mkdir %ARC_FOLDER% 
Move *.log %PROFILE% 
Move *.log %SVR_LOGS%\%ARC_FOLDER% 
Move *.adm %PROFILE% 
Move *.adm %SVR_LOGS%\%ARC_FOLDER% 
Move *.rpt %PROFILE%
Move *.rot %SVR_LOGS%\%ARC_FOLDER% 
Move *.mdmp %PROFILE% 
Move *.mdmp %SVR_LOGS%\%ARC_FOLDER%
cls 
echo Log Archive Complete!... 
timeout 3 >nul 
cls