2011-09-01 153 views
0

您好再次#1社區,命令行參數在C#

今天我試圖執行C#中的命令行參數的應用程序,這不是真的很難像我試過

Process.Start(foldervar + "cocacola.exe", "pepsi.txt"); 

Cocacola.exe寫入和日誌在其當前文件夾中。在我的命令行中,我這樣手動編寫它

C:\myfolder>cocacola.exe pepsi.txt 

工作很棒,但如果我在C#中嘗試它總失敗。

我讀到C#將命令解析爲C:\ myfolder> cocacola pepsi.txt,沒有「.EXE」結尾。我沒有結束手動測試它,這是行不通的。現在

,我的問題是什麼是正確的方式來獲得C#執行它C:\ MyFolder文件> cocacola.exe pepsi.txt與 「.EXE」

+0

我不完全確定你要做什麼。你想從另一個開始一個程序嗎? – mydogisbox

+0

是的,我有問題,Process.Start(foldervar +「cocacola.exe」,「pepsi.txt」); 不啓動它像那樣C:\ myfolder> cocacola.exe pepsi.txt但C:\ myfolder> cocacola pepsi.txt並且程序無法工作。 – Noli

+0

@ Blabla R沒有那不是我想要的待辦事項。與,foldervar +「pepsi.txt」)你會改變這些參數。閱讀以下行:D – Noli

回答

3

使用的ProcessStartInfo

http://www.dotnetperls.com/process-start

例如:在StartInfo的屬性

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
    [email protected]"c:\someplace"; 
    proc.StartInfo.FileName="cocacola.exe"; 
    proc.StartInfo.Arguments="pepsi.txt"; 
    proc.Start(); 
    proc.WaitForExit(); 

這裏是文檔:

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx

+0

我的程序在哪裏知道cocacola.exe的位置? – Noli

+0

其實這與CD的有用的評論設置WorkingDirectory的工作!也謝謝你們! – Noli

+0

編輯我的答案添加workingDirectory – hatchet

2

嘗試設置StartInfo屬性。

Process process = new Process(); 
process.StartInfo.FileName = @"C:\myfolder\cocacola.exe"; 
process.StartInfo.Arguments = @"C:\myfolder\pepsi.txt"; 
process.Start(); 
0

您需要設置工作目錄第一

string foldervar = @"C:\myfolder"; 
Process process = new Process(); 
process.StartInfo.WorkingDirectory = foldervar; 
process.StartInfo.FileName = @"cocacola.exe"; 
process.StartInfo.Arguments = @"pepsi.txt"; 
process.Start(); 

設置WorkingDirectory是在運行程序之前,等同於cd進入正確的目錄。這是相對路徑相對於。