2011-08-04 106 views
0

如何讓程序等待直到shell命令完成?例如:如何延遲命令執行

Shell("format") 
Console.WriteLine("Finished") 

在這個例子中,「Finished」這行首先被寫入,並且只在shell函數啓動之後。如何首先啓動shell函數,並且只有在完成後寫入「完成」行?

+0

@dtb一樣在示例 – Cobold

+2

選擇一個語言。它是C#還是VB.Net? –

回答

3

Shell可以採取一個參數指定是否等待程序完成或不:

Shell("format", Wait:=True) 
2

使用過程和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將運行,當它完成了一個命令,然後退出。

0

做一個快速的互聯網搜索 「Microsoft.VisualBasic.Interaction.Shell」。

我發現這一點:MSDN microsoft.visualbasic.interaction.shell

它告訴我:

參數

等待

Type: System.Boolean 

可選。布爾。指示Shell功能 是否應等待程序完成的值。如果省略Wait,Shell使用False。

1

也許你需要的東西是這樣的:

System.Diagnostics.Process.Start("C:\bla.exe").WaitForExit();