2011-06-08 70 views
0

我從我的應用程序中打開cmd.exe並將其導航到一個文件,但問題是如果文件路徑中有空格,它將不會去那裏。C#Cmd進程無法使用空格

Process.Start("cmd.exe", "/C choice /C Y /N /D Y /T 3 & cd C:\Temp Folder"); 

取而代之的是尋找臨時文件夾,它只會尋找我想要的溫度。

一種方法是用「」包裝路徑,但我不能在一個字符串中做到這一點。 (試過'')

另一種方法是循環遍歷路徑,找到空格並用某些東西代替它們,但我不知道是什麼。

我可以使用一些幫助,無論這個方式(如果你有一個更好的,這是偉大的)

回答

4

字符串中的\需要轉義,你需要包括在雙引號空間的文件夾名稱。

嘗試

Process.Start("cmd.exe", @"/C choice /C Y /N /D Y /T 3 & cd C:\""Temp Folder"""); 

Process.Start("cmd.exe", "/C choice /C Y /N /D Y /T 3 & cd C:\\\"Temp Folder\""); 
+0

爲什麼不包括?C:\像這樣:'的Process.Start(」 cmd.exe的 「@」/ C選擇/ CY/N/DY/T 3 &cd \「C:\ Temp Folder \」「);' – 2011-06-08 14:28:50

+0

不,它問我:C:\ Temp Folder \ *,你確定(Y/N)嗎?當你把那個@放在那裏,它忽略/ C/CY/N/DY/T。但是,它確實導航到了它。 – user779444 2011-06-08 14:30:08

3

您需要使用轉義字符\特殊字符。所以,爲了躲避 「使用\"

+0

是的,那是一個 – user779444 2011-06-08 14:37:23