Batch Variable In Tasklist Issue












1














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.










share|improve this question



























    1














    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.










    share|improve this question

























      1












      1








      1







      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.










      share|improve this question













      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 28 '18 at 3:00









      Luke

      186




      186
























          1 Answer
          1






          active

          oldest

          votes


















          2














          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...
          )





          share|improve this answer























            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
            });


            }
            });














            draft saved

            draft discarded


















            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









            2














            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...
            )





            share|improve this answer




























              2














              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...
              )





              share|improve this answer


























                2












                2








                2






                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...
                )





                share|improve this answer














                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...
                )






                share|improve this answer














                share|improve this answer



                share|improve this answer








                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






























                    draft saved

                    draft discarded




















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    Mossoró

                    Error while reading .h5 file using the rhdf5 package in R

                    Pushsharp Apns notification error: 'InvalidToken'