How to wait until my batch file is finished












4














I'm doing a program where I need to start cmd and there start up a batch file. The problem is that I'm using MyProcess.WaithForexit(); and I think it does not wait until the batch file processing is finished. It just waits until the cmd is closed. My code so far:



System.Diagnostics.ProcessStartInfo ProcStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd");
ProcStartInfo.RedirectStandardOutput = true;
ProcStartInfo.UseShellExecute = false;
ProcStartInfo.CreateNoWindow = false;
ProcStartInfo.RedirectStandardError = true;
System.Diagnostics.Process MyProcess = new System.Diagnostics.Process();
ProcStartInfo.Arguments = "/c start batch.bat ";
MyProcess.StartInfo = ProcStartInfo;
MyProcess.Start();
MyProcess.WaitForExit();


I need to wait until the batch file is finished. How do I do that?










share|improve this question




















  • 6




    start launches the batch and returns. Remove start.
    – CodeCaster
    Jun 6 '15 at 12:06
















4














I'm doing a program where I need to start cmd and there start up a batch file. The problem is that I'm using MyProcess.WaithForexit(); and I think it does not wait until the batch file processing is finished. It just waits until the cmd is closed. My code so far:



System.Diagnostics.ProcessStartInfo ProcStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd");
ProcStartInfo.RedirectStandardOutput = true;
ProcStartInfo.UseShellExecute = false;
ProcStartInfo.CreateNoWindow = false;
ProcStartInfo.RedirectStandardError = true;
System.Diagnostics.Process MyProcess = new System.Diagnostics.Process();
ProcStartInfo.Arguments = "/c start batch.bat ";
MyProcess.StartInfo = ProcStartInfo;
MyProcess.Start();
MyProcess.WaitForExit();


I need to wait until the batch file is finished. How do I do that?










share|improve this question




















  • 6




    start launches the batch and returns. Remove start.
    – CodeCaster
    Jun 6 '15 at 12:06














4












4








4







I'm doing a program where I need to start cmd and there start up a batch file. The problem is that I'm using MyProcess.WaithForexit(); and I think it does not wait until the batch file processing is finished. It just waits until the cmd is closed. My code so far:



System.Diagnostics.ProcessStartInfo ProcStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd");
ProcStartInfo.RedirectStandardOutput = true;
ProcStartInfo.UseShellExecute = false;
ProcStartInfo.CreateNoWindow = false;
ProcStartInfo.RedirectStandardError = true;
System.Diagnostics.Process MyProcess = new System.Diagnostics.Process();
ProcStartInfo.Arguments = "/c start batch.bat ";
MyProcess.StartInfo = ProcStartInfo;
MyProcess.Start();
MyProcess.WaitForExit();


I need to wait until the batch file is finished. How do I do that?










share|improve this question















I'm doing a program where I need to start cmd and there start up a batch file. The problem is that I'm using MyProcess.WaithForexit(); and I think it does not wait until the batch file processing is finished. It just waits until the cmd is closed. My code so far:



System.Diagnostics.ProcessStartInfo ProcStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd");
ProcStartInfo.RedirectStandardOutput = true;
ProcStartInfo.UseShellExecute = false;
ProcStartInfo.CreateNoWindow = false;
ProcStartInfo.RedirectStandardError = true;
System.Diagnostics.Process MyProcess = new System.Diagnostics.Process();
ProcStartInfo.Arguments = "/c start batch.bat ";
MyProcess.StartInfo = ProcStartInfo;
MyProcess.Start();
MyProcess.WaitForExit();


I need to wait until the batch file is finished. How do I do that?







c# windows batch-file cmd wait






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jun 6 '15 at 13:53









marc_s

570k12811031251




570k12811031251










asked Jun 6 '15 at 12:05









Manuel Sebastian Rios

57110




57110








  • 6




    start launches the batch and returns. Remove start.
    – CodeCaster
    Jun 6 '15 at 12:06














  • 6




    start launches the batch and returns. Remove start.
    – CodeCaster
    Jun 6 '15 at 12:06








6




6




start launches the batch and returns. Remove start.
– CodeCaster
Jun 6 '15 at 12:06




start launches the batch and returns. Remove start.
– CodeCaster
Jun 6 '15 at 12:06












2 Answers
2






active

oldest

votes


















3














The start command has arguments that can make it WAIT for the started program to complete. Edit the arguments as show below to pass '/wait':



ProcStartInfo.Arguments = "/c start /wait batch.bat ";


I would also suggest that you want your batch file to exit the cmd envirionment so place an 'exit' at the end of the batch.



@echo off
rem Do processing
exit


This should achieve the desired behavior.






share|improve this answer

















  • 2




    adding "exit" at the end of the batch file was crucial.
    – Sarah
    Jan 14 '16 at 11:11



















0














This actually worked just fine for me:



System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();


As milton said, adding 'exit' at the end of your batch files is most likely a good idea.



Cheers






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%2f30682629%2fhow-to-wait-until-my-batch-file-is-finished%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3














    The start command has arguments that can make it WAIT for the started program to complete. Edit the arguments as show below to pass '/wait':



    ProcStartInfo.Arguments = "/c start /wait batch.bat ";


    I would also suggest that you want your batch file to exit the cmd envirionment so place an 'exit' at the end of the batch.



    @echo off
    rem Do processing
    exit


    This should achieve the desired behavior.






    share|improve this answer

















    • 2




      adding "exit" at the end of the batch file was crucial.
      – Sarah
      Jan 14 '16 at 11:11
















    3














    The start command has arguments that can make it WAIT for the started program to complete. Edit the arguments as show below to pass '/wait':



    ProcStartInfo.Arguments = "/c start /wait batch.bat ";


    I would also suggest that you want your batch file to exit the cmd envirionment so place an 'exit' at the end of the batch.



    @echo off
    rem Do processing
    exit


    This should achieve the desired behavior.






    share|improve this answer

















    • 2




      adding "exit" at the end of the batch file was crucial.
      – Sarah
      Jan 14 '16 at 11:11














    3












    3








    3






    The start command has arguments that can make it WAIT for the started program to complete. Edit the arguments as show below to pass '/wait':



    ProcStartInfo.Arguments = "/c start /wait batch.bat ";


    I would also suggest that you want your batch file to exit the cmd envirionment so place an 'exit' at the end of the batch.



    @echo off
    rem Do processing
    exit


    This should achieve the desired behavior.






    share|improve this answer












    The start command has arguments that can make it WAIT for the started program to complete. Edit the arguments as show below to pass '/wait':



    ProcStartInfo.Arguments = "/c start /wait batch.bat ";


    I would also suggest that you want your batch file to exit the cmd envirionment so place an 'exit' at the end of the batch.



    @echo off
    rem Do processing
    exit


    This should achieve the desired behavior.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Jun 7 '15 at 4:24









    miltonb

    3,00353343




    3,00353343








    • 2




      adding "exit" at the end of the batch file was crucial.
      – Sarah
      Jan 14 '16 at 11:11














    • 2




      adding "exit" at the end of the batch file was crucial.
      – Sarah
      Jan 14 '16 at 11:11








    2




    2




    adding "exit" at the end of the batch file was crucial.
    – Sarah
    Jan 14 '16 at 11:11




    adding "exit" at the end of the batch file was crucial.
    – Sarah
    Jan 14 '16 at 11:11













    0














    This actually worked just fine for me:



    System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();


    As milton said, adding 'exit' at the end of your batch files is most likely a good idea.



    Cheers






    share|improve this answer


























      0














      This actually worked just fine for me:



      System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();


      As milton said, adding 'exit' at the end of your batch files is most likely a good idea.



      Cheers






      share|improve this answer
























        0












        0








        0






        This actually worked just fine for me:



        System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();


        As milton said, adding 'exit' at the end of your batch files is most likely a good idea.



        Cheers






        share|improve this answer












        This actually worked just fine for me:



        System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();


        As milton said, adding 'exit' at the end of your batch files is most likely a good idea.



        Cheers







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 23 at 0:02









        HarvesteR

        315




        315






























            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%2f30682629%2fhow-to-wait-until-my-batch-file-is-finished%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

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            How to ignore python UserWarning in pytest?

            Alexandru Averescu