2014-11-08 66 views
1

我有一個從應用程序中執行批處理文件的應用程序。批處理文件包含此從c發送包含批處理文件空間的路徑#

attrib %1 +h +r +s /s /d 
pause 

我在C#應用程序代碼是

Process p = new Process(); 
string [email protected]"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject"; 
p.StartInfo.FileName = @"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\hide_2.bat"; 
p.StartInfo.Arguments = m; 
p.StartInfo.Verb = "runas"; 
p.Start(); 

當過我運行此。它似乎只挑選了C:\ Users \ INDERJEET \ Desktop \ Antivirus之後的路徑,而不是之後..如何將整個路徑發送到cmd。

+0

您需要用雙引號(' 「')路徑周圍 - '串m = @」 「」 C:\用戶\ INDERJEET \桌面\殺毒軟件的工作原理\殺毒軟件\批處理文件中\ Testproject 「」」 ;' – Tim 2014-11-08 10:21:48

+0

儘管我在.bat文件中放了一個暫停語句,但它只是出現一秒鐘而消失,當我在路徑中放置雙引號時,會發生這種情況 – 2014-11-08 10:27:51

+0

@蒂姆有沒有其他方式發送路徑?或者可以解決問題的矯正。因爲雙引號方法不起作用。我試了p.StartInfo.Arguments = m.Replace('','%'); 。由於%不是相同的路徑位置,所以不起作用。 – 2014-11-08 11:23:51

回答

1

嘗試在路徑周圍使用雙引號(")。由於您使用的一個字符串,你需要有第二雙引號(這樣"")轉義雙引號:

​​

上述代碼的結果應該通過以下參數成批處理文件:

"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject" 
+0

我該如何檢查它發送給我的批處理文件?因爲批處理文件在運行時會立即關閉 – 2014-11-08 10:34:58

+0

@InderjeetSingh它發送的內容正是您要傳送的內容。沒有魔法。 – 2014-11-08 10:42:51

+0

@InderjeetSingh - 如果您想查看發送的內容,請回復它。 – Tim 2014-11-08 10:43:59

相關問題