gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:46:01 25 4
gpt4 key购买 nike

尝试从我的 C# 应用程序调用 Perl 脚本。 perl 脚本有一个提示,要求用户在其中输入一些内容。我似乎无法显示它。这是我用来调用它的函数。我有另一个函数将 System.Enviroment.SetEnvironmtVariable 的路径设置为“C:\Perl\bin\;”连同其他过程​​所需的其他东西'

private void getRevisionAndUpdate()
{
Process myProcess = new Process();
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.WorkingDirectory = @"the directory that has the perl script";
myProcess.StartInfo.Arguments = @"/c SaidPerlScript.pl";
myProcess.StartInfo.UseShellExecute = false;
myProcess.Start();
myProcess.WaitForExit();
}

正如我之前所说,它似乎可以运行,但它要么只是在记事本中打开脚本,要么什么都不做。还应该注意我试过运行 cmd.exe 和 perl.exe。 cmd 似乎在记事本中打开它,而 perl 没有显示它应该显示的提示。

最佳答案

不太确定您为什么要尝试运行 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";

关于c# - 通过 C# 应用程序运行使用提示的 perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com