Batch Variable In Tasklist Issue
So I currently have a simple backup script which only runs if a game server executable is currently running. I am using a variable at the top for the executable name to check for, but for some reason it is not working.
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...
)
The following code does not work. For some reason it displays the following error:
File not found - DAYZSERVER_x64.EXE
Am I doing something wrong? If I remove the variables in the tasklist call and place the executable name straight in there, it works fine.
batch-file
add a comment |
So I currently have a simple backup script which only runs if a game server executable is currently running. I am using a variable at the top for the executable name to check for, but for some reason it is not working.
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...
)
The following code does not work. For some reason it displays the following error:
File not found - DAYZSERVER_x64.EXE
Am I doing something wrong? If I remove the variables in the tasklist call and place the executable name straight in there, it works fine.
batch-file
add a comment |
So I currently have a simple backup script which only runs if a game server executable is currently running. I am using a variable at the top for the executable name to check for, but for some reason it is not working.
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...
)
The following code does not work. For some reason it displays the following error:
File not found - DAYZSERVER_x64.EXE
Am I doing something wrong? If I remove the variables in the tasklist call and place the executable name straight in there, it works fine.
batch-file
So I currently have a simple backup script which only runs if a game server executable is currently running. I am using a variable at the top for the executable name to check for, but for some reason it is not working.
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...
)
The following code does not work. For some reason it displays the following error:
File not found - DAYZSERVER_x64.EXE
Am I doing something wrong? If I remove the variables in the tasklist call and place the executable name straight in there, it works fine.
batch-file
batch-file
asked Dec 28 '18 at 3:00
Luke
186
186
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This was caused by a simple code error with the initial SET command. The way you have it formatted is incorrect for your purposes.
As it stands, set SERVER_EXECUTABLE_NAME="DayZServer_x64.exe" is causing SERVER_EXECUTABLE_NAME to equal "DayZServer_x64.exe" - this will cause IMAGENAME eq %SERVER_EXECUTABLE_NAME% to be IMAGENAME eq "%SERVER_EXECUTABLE_NAME%", whitch is fine, BUT Your FIND function is already being quoted causing it to look like ""%SERVER_EXECUTABLE_NAME%"" But in the CMD it's DayZServer_x64.exe NOT "DayZServer_x64.exe".
In the end I believe what you was meaning to do was the proper way:
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...
)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53953203%2fbatch-variable-in-tasklist-issue%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This was caused by a simple code error with the initial SET command. The way you have it formatted is incorrect for your purposes.
As it stands, set SERVER_EXECUTABLE_NAME="DayZServer_x64.exe" is causing SERVER_EXECUTABLE_NAME to equal "DayZServer_x64.exe" - this will cause IMAGENAME eq %SERVER_EXECUTABLE_NAME% to be IMAGENAME eq "%SERVER_EXECUTABLE_NAME%", whitch is fine, BUT Your FIND function is already being quoted causing it to look like ""%SERVER_EXECUTABLE_NAME%"" But in the CMD it's DayZServer_x64.exe NOT "DayZServer_x64.exe".
In the end I believe what you was meaning to do was the proper way:
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...
)
add a comment |
This was caused by a simple code error with the initial SET command. The way you have it formatted is incorrect for your purposes.
As it stands, set SERVER_EXECUTABLE_NAME="DayZServer_x64.exe" is causing SERVER_EXECUTABLE_NAME to equal "DayZServer_x64.exe" - this will cause IMAGENAME eq %SERVER_EXECUTABLE_NAME% to be IMAGENAME eq "%SERVER_EXECUTABLE_NAME%", whitch is fine, BUT Your FIND function is already being quoted causing it to look like ""%SERVER_EXECUTABLE_NAME%"" But in the CMD it's DayZServer_x64.exe NOT "DayZServer_x64.exe".
In the end I believe what you was meaning to do was the proper way:
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...
)
add a comment |
This was caused by a simple code error with the initial SET command. The way you have it formatted is incorrect for your purposes.
As it stands, set SERVER_EXECUTABLE_NAME="DayZServer_x64.exe" is causing SERVER_EXECUTABLE_NAME to equal "DayZServer_x64.exe" - this will cause IMAGENAME eq %SERVER_EXECUTABLE_NAME% to be IMAGENAME eq "%SERVER_EXECUTABLE_NAME%", whitch is fine, BUT Your FIND function is already being quoted causing it to look like ""%SERVER_EXECUTABLE_NAME%"" But in the CMD it's DayZServer_x64.exe NOT "DayZServer_x64.exe".
In the end I believe what you was meaning to do was the proper way:
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...
)
This was caused by a simple code error with the initial SET command. The way you have it formatted is incorrect for your purposes.
As it stands, set SERVER_EXECUTABLE_NAME="DayZServer_x64.exe" is causing SERVER_EXECUTABLE_NAME to equal "DayZServer_x64.exe" - this will cause IMAGENAME eq %SERVER_EXECUTABLE_NAME% to be IMAGENAME eq "%SERVER_EXECUTABLE_NAME%", whitch is fine, BUT Your FIND function is already being quoted causing it to look like ""%SERVER_EXECUTABLE_NAME%"" But in the CMD it's DayZServer_x64.exe NOT "DayZServer_x64.exe".
In the end I believe what you was meaning to do was the proper way:
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...
)
edited Dec 28 '18 at 8:27
Stephan
34.7k43255
34.7k43255
answered Dec 28 '18 at 4:52
John Kens
1,0181317
1,0181317
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53953203%2fbatch-variable-in-tasklist-issue%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown