如何讓程序等待直到shell命令完成?例如:如何延遲命令執行
Shell("format")
Console.WriteLine("Finished")
在這個例子中,「Finished」這行首先被寫入,並且只在shell函數啓動之後。如何首先啓動shell函數,並且只有在完成後寫入「完成」行?
如何讓程序等待直到shell命令完成?例如:如何延遲命令執行
Shell("format")
Console.WriteLine("Finished")
在這個例子中,「Finished」這行首先被寫入,並且只在shell函數啓動之後。如何首先啓動shell函數,並且只有在完成後寫入「完成」行?
Shell
可以採取一個參數指定是否等待程序完成或不:
Shell("format", Wait:=True)
使用過程和cmd.exe
var psi = new ProcessStartInfo("cmd.exe");
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.Arguments = @"/C cd C:\windows\system32 && dir";
var proc = Process.Start(psi);
proc.WaitForExit()
Console.WriteLine("Finished!");
你想運行的任何命令(S)開頭的/C
的說法,意思是shell將運行,當它完成了一個命令,然後退出。
我認爲你可以使用Process類。
創建進程的實例並在進程存在時附加事件處理程序。
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx#Y200
做一個快速的互聯網搜索 「Microsoft.VisualBasic.Interaction.Shell」。
我發現這一點:MSDN microsoft.visualbasic.interaction.shell
它告訴我:
參數
等待
Type: System.Boolean
可選。布爾。指示Shell功能 是否應等待程序完成的值。如果省略Wait,Shell使用False。
也許你需要的東西是這樣的:
System.Diagnostics.Process.Start("C:\bla.exe").WaitForExit();
看一看的Process Class。然後使用Process.WaitForExit Method等待您創建的過程退出。
@dtb一樣在示例 – Cobold
選擇一個語言。它是C#還是VB.Net? –