Это было вызвано простой ошибкой кода с начальной командой SET
.То, как вы его отформатировали, неверно для ваших целей.
Как есть, set SERVER_EXECUTABLE_NAME="DayZServer_x64.exe"
приводит к SERVER_EXECUTABLE_NAME
равному "DayZServer_x64.exe"
- это приведет к IMAGENAME eq %SERVER_EXECUTABLE_NAME%
, равному IMAGENAME eq "%SERVER_EXECUTABLE_NAME%"
, что означаетхорошо, НО Ваша функция НАЙТИ уже цитируется, поэтому она выглядит как ""%SERVER_EXECUTABLE_NAME%""
Но в CMD это DayZServer_x64.exe
НЕ "DayZServer_x64.exe"
.
В конце концов, я верю в то, что выимел в виду, чтобы сделать было правильно:
set "SERVER_EXECUTABLE_NAME=DayZServer_x64.exe"
FixedBatch:
set "SERVER_EXECUTABLE_NAME=DayZServer_x64.exe"
set "SERVER_BACKUP_DIRECTORY="
set "BACKUP_DIRECTORY="
echo Checking if server is running...
tasklist /FI "IMAGENAME eq %SERVER_EXECUTABLE_NAME%" /FI "STATUS eq RUNNING" | find /I "%SERVER_EXECUTABLE_NAME%" > nul && (
echo Backing up files...
robocopy "%SERVER_BACKUP_DIRECTORY%" "%BACKUP_DIRECTORY%\%date:/=-% %time::=-%" /mir /s /w:0 /r:1
) || (
echo Server is not running, skipping backup...
)