2011-07-25 20 views
1

我有三個路徑,我想將3個獨立的參數傳遞給一個可執行文件。我做了startinfo.arguments,但是我如何區分它們以便可執行文件知道它們是三個不同的參數?startinfo.arguments問題?

回答

3

您可以簡單地將這些參數傳遞給參數屬性,並使用空格分隔它們,就像在命令提示符處將其包含在雙引號中的任何包含空格一樣。

更新: -

如在參數空間包圍的一個例子,要複製 '富酒吧baz.txt' 到 '這是的test.txt': -

using (var process = new Process 
     { 
      StartInfo = new ProcessStartInfo 
      { 
       FileName = "cmd.exe", 
       Arguments = "/c copy \"foo bar baz.txt\" \"this is a test.txt\"" 
      } 
     }) 
{ 
    process.Start(); 
    process.WaitForExit(); 
} 

的語法很笨拙,但具有與您在命令行中如何操作一致的優點,正如@Ed S.所指出的那樣。

+0

你能對雙引號引起包含空格的概念擴大? (可能的例子?)謝謝!\ –

1

您傳遞的參數字符串應該與您要傳遞的參數字符串沒有區別如果你正在輸入c ommand線。

1

比方說你的程序被稱爲將Test.exe和你想通過這三個命令行參數「參數1」「的說法二」和「參數3」

如果你是從你會在命令行中運行這個這樣做:

Text.exe argument1 "argument two" argument3 

所以你startInfo.Arguments將被設置爲:

startInfo.Arguments = "argument1 \"argument two\" argument3";