我試圖讓C#應用程序使用hunpos tagger。 乳寧hunpos-tag.exe需要三個輸入參數:型號,INPUTFILE,OUTPUTFILE如何在啓動過程之前重定向STDIN .NET過程
在CMD它會是這個樣子:
hunpos-tag.exe model <inputFile >outputFile
如果我只是模型上運行它,它寫的東西,等待結束命令。當我嘗試使用標準重定向時,我要麼得到一個異常(我解決了這個問題,這個代碼已經被一個大括號取代了,或者我現在只是得到了這個或者場景),或者我只用模型參數就可以得到運行tagger的結果。代碼如下:
string inputFilePath = path + "\\CopyFolder\\rr";
string pathToExe = path + "\\CopyFolder\\hunpos-tag.exe";
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = pathToExe,
UseShellExecute = false,
RedirectStandardInput = true,
WorkingDirectory = Directory.GetDirectoryRoot(pathToExe),
Arguments = path + "\\CopyFolder\\model.hunpos.mte5.defnpout",
};
try
{
Process _proc = new Process();
_proc.StartInfo.FileName = pathToExe;
_proc.StartInfo.UseShellExecute = false;
_proc.StartInfo.RedirectStandardInput = true;
_proc.StartInfo.Arguments = path + "\\CopyFolder\\model.hunpos.mte5.defnpout";
//Magic goes here
_proc.Start();
_proc.WaitForExit();
}
catch (Exception e)
{
Console.WriteLine(e);
}
任何想法如何在開始我的過程之前重定向輸入?
什麼是異常? – 2015-02-11 17:35:52
我相信你必須在開始進程後重定向,如果你想在啓動應用程序時使用這個參數,你可以傳遞多個初始參數。根據我的經驗,重定向是即時的。 – user1274820 2015-02-11 17:36:30
的例外是:System.InvalidOperationException:沒有進程與此對象關聯。 – user3816378 2015-02-11 17:42:47