簡體   English   中英

等待cmd命令結束,然后繼續

[英]Wait for cmd command to end before continuing

我從命令窗口運行命令,如下所示:

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "/C " + command + "> " + userProfile + @"\cmdoutput.txt";
    process.StartInfo = startInfo;
    process.Start();

下一行代碼讀取文本文件並根據需要操作數據。 但是,如果我不等待cmd進程結束,它將讀取一個空文本文件。 我想到了:

  • 不使用文本文件

    • 由於我有其他限制,這不起作用,它需要放在一個文本文件中
  • 等幾秒鍾

    • 我不知道該命令需要多長時間,而且基於時間的解決方案通常都很糟糕。
  • 檢查命令提示符進程是否正在運行

    • 出於任何原因,用戶可能正在運行另一個命令提示符

System.Diagnostics.Process類有一個方法WaitForExit 據我了解你的問題,那應該做你想要的。

你應該能做到的,

process.Start();
process.WaitForExit();

如有必要,您還可以傳遞一個int超時。

當然,這假設您運行的應用程序將在完成后退出。 如果情況並非如此( 重新考慮! ),你將不得不做其他事情,比如投票。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM