Как выполнить скрипт perl с входными параметрами и вывести результат в файл на C # - PullRequest
0 голосов
/ 03 мая 2011

Я хочу выполнить Perl-скрипт в моем коде на C # и вывести результат в файл.Сценарий Perl примет двоичное имя файла в качестве входного параметра, и я хочу перенаправить результат в текстовый файл.У меня есть следующее в моем коде c #, но выходной файл test.txt не создается.Пожалуйста, сообщите, если вы знаете проблему:

private Process myProcess = null;

myProcess = new Process();

myProcess.StartInfo.FileName = "perl.exe";
myProcess.StartInfo.Arguments = "C:\\mydir\\myPerl.pl C:\\mydir\\myFile.DAT > C:\\mydir\\test.txt";
myProcess.Start();

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Я уже отвечал на аналогичный вопрос пару из раз до :

Вот мой предыдущий ответ.Просто замените делегатов для записи в файл.

ProcessStartInfo processInfo = new ProcessStartInfo("Myexe.exe");
processInfo.ErrorDialog = false;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardOutput = true;
processInfo.RedirectStandardError = true;

Process proc = Process.Start(processInfo);

// You can pass any delegate that matches the appropriate 
// signature to ErrorDataReceived and OutputDataReceived
proc.ErrorDataReceived += (sender, errorLine) => { if (errorLine.Data != null) Trace.WriteLine(errorLine.Data); };
proc.OutputDataReceived += (sender, outputLine) => { if (outputLine.Data != null) Trace.WriteLine(outputLine.Data); };
proc.BeginErrorReadLine();
proc.BeginOutputReadLine();

proc.WaitForExit();

В вашем конкретном случае не забудьте удалить "> C:\\mydir\\test.txt" из командной строки.

0 голосов
/ 03 мая 2011

Программа выполняется? Я имею в виду, что выходной файл не создается или процесс не запускается? Кстати, вам нужно будет избежать этих обратных косых черт или использовать @ перед строкой аргумента.

Перенаправление не является аргументом, поэтому я не думаю, что вы можете указать "> C: \ mydir \ test.txt" "в параметре arguments. Попробуйте вместо этого использовать Process.StandardOutput Или вы также можете попробовать взять выходной файл в качестве аргумента в скрипте perl и заставить код perl записать текстовый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...