运行通过C#应用程序使用提示符的perl脚本

时间:2016-09-20 20:41:52

标签: c# perl process

尝试从我的c#app调用perl脚本。 perl脚本有一个提示,要求用户在其中输入内容。我似乎无法展示它。这是我用来调用它的功能。我有另一个函数,将System.Enviroment.SetEnvironmtVariable设置为" C:\ Perl \ bin \;"以及其他过程所需的其他过程'

export default class FormsHelper { ...methods and whatnot }
正如我之前说的似乎运行,但它只是在记事本中打开脚本或者什么都不做。还应该注意我已经尝试运行cmd.exe和perl.exe。 cmd似乎在记事本中打开它,perl没有显示它应该的提示。

1 个答案:

答案 0 :(得分:3)

不太确定您为什么要尝试运行cmd.exe,但是如果您通过perl.exe运行它会有效(我的脚本名为a.pl并打印hello }):

    static void Main(string[] args)
    {
        Process myProcess = new Process();
        myProcess.StartInfo.FileName = "perl.exe";
        myProcess.StartInfo.WorkingDirectory = @".\";
        myProcess.StartInfo.Arguments = @"a.pl";
        myProcess.StartInfo.UseShellExecute = false;
        myProcess.Start();
        myProcess.WaitForExit();
    }

它也正确读取STDIN。作为参考,这是a.pl

print("Hello\n");
my $a = <STDIN>;
print "You entered " . $a . "\n";