[英]Passing multiple arguments to running console application from windows form
我有控制台應用程序,將其命名為X.exe 。 它與兩個參數一起工作,比如說'a'和'a.tmp',其中a 是我的輸入文件名 , a.tmp 是輸出filename 。 在控制台上,我通常運行如下應用程序: X a a.tmp, 但首先我必須在輸入文件'a'的位置出現,否則,如果我嘗試給出其絕對路徑,則應用程序將無法工作。 我已經創建了Windows窗體來運行這些控制台應用程序,但是正如我之前所說,必須在文件位置啟動該應用程序。 我嘗試使用過程對象,但應用程序無法正常工作。 我創建了兩個過程:
Question: can I excute these multiple commands in one go and avoid using IPC?
您可以使用ProcessStartInfo.WorkingDirectory
。
例如,來自MS Docs-ProcessStartInfo類
當
UseShellExecute
為true
時,WorkingDirectory
屬性的行為與UseShellExecute
為false
時的行為不同。 當UseShellExecute
為true
,WorkingDirectory
屬性指定可執行文件的位置。 如果WorkingDirectory
是一個空字符串,則當前目錄將被理解為包含可執行文件。注-當
UseShellExecute
為true
,啟動可執行文件的應用程序的工作目錄也是可執行文件的工作目錄。如果
UseShellExecute
為false
,則不使用WorkingDirectory
屬性查找可執行文件。 相反,它的值適用於已啟動的流程,並且僅在新流程的上下文中具有含義。
例如
public static void Main()
{
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = true;
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "X.exe"; /
myProcess.WorkingDirectory = "C:\SomeDirectory That contains A and A.tmp"
myProcess.Start();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.