我在C#項目中的場景是用戶將像"c:\homedir\mydir"
這樣的路徑傳遞給批處理文件,那麼批處理文件應該接受此路徑並在指定路徑上創建目錄。如何通過C#將字符串傳遞給批處理文件以及批處理文件如何接受字符串參數?
我不知道如何通過c#傳遞字符串到批處理文件以及批處理文件如何接受字符串並處理它。
我在C#項目中的場景是用戶將像"c:\homedir\mydir"
這樣的路徑傳遞給批處理文件,那麼批處理文件應該接受此路徑並在指定路徑上創建目錄。如何通過C#將字符串傳遞給批處理文件以及批處理文件如何接受字符串參數?
我不知道如何通過c#傳遞字符串到批處理文件以及批處理文件如何接受字符串並處理它。
創建一個流程並將您的參數傳遞給StartInfo.Arguments
屬性。
Process proc = new Process();
proc.StartInfo.FileName = //path to your BAT file
proc.StartInfo.Arguments = String.Format("{0}", @"C:\homedir\mydir");
//set the rest of the process settings
proc.Start();
這將加載您的BAT文件,並通過你添加的參數爲準。您的BAT文件可以使用%1
作爲第一個參數,%2
作爲第二個參數等等。
因爲您沒有給我們提供任何信息,我只是舉例說明這些主題。
首先,您需要使用Process
類包含System.Diagnostics
命名空間。
提供對本地和遠程進程的訪問,並使您能夠啓動 並停止本地系統進程。
與一個批處理文件的一個例子:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "yourbatchfile.bat";
p.Start();
傳遞參數,你可以使用ProcessStartInfo.Arguments
屬性。
獲取或設置應用程序啓動 時要使用的一組命令行參數。
感謝Soner,它對我很有幫助 – Rushikesh
@Rushikesh不客氣';)' –
[如何發送系列命令窗口進程的命令?(http://stackoverflow.com/a/4789324/417747) – NSGaga
爲什麼通參數批處理文件?你不能在C#應用程序內進行處理?它使諸如從批處理文件獲得反饋的事情變得複雜。你怎麼知道是否有問題?您可以使用狀態/結果代碼,但不是非常健壯。 –
嗨,彼得感謝您的建議,我會盡量從c#應用程序做同樣的事情。 – Rushikesh