无法使用 C# 运行 perl 脚本

Posted

技术标签:

【中文标题】无法使用 C# 运行 perl 脚本【英文标题】:failure to run a perl script using C# 【发布时间】:2015-06-02 07:03:47 【问题描述】:

我正在使用此代码从 C# 程序运行 perl 脚本:

        String config_location = file_path
        ProcessStartInfo perlStartInfo = new ProcessStartInfo(@"C:\Perl64\bin\perl.exe");


        perlStartInfo.Domain="C:\\e\\oa\\dir_path";
        perlStartInfo.FileName = "C:\\Perl64\\bin\\perl.exe";
        perlStartInfo.Arguments = "C:\\e\\oa\\Evergreen\\evg\\scripts\\helper\\program.pl" + "-config" + config_location;
        perlStartInfo.UseShellExecute = false;
        perlStartInfo.RedirectStandardOutput = false;
        perlStartInfo.RedirectStandardError = false;
        perlStartInfo.RedirectStandardInput = false;
        perlStartInfo.CreateNoWindow = false;
        perlStartInfo.WorkingDirectory="C:\\e\\oa\\dir_path";

        Process perl = new Process(); 
        perl.StartInfo = perlStartInfo;
        perl.Start();
        perl.WaitForExit();

代码基本上是从这里获取的——https://social.msdn.microsoft.com/Forums/vstudio/en-US/ea9455e1-b254-49e1-99df-41718ea80b5b/how-to-run-perl-scripts-in-c

file_path 是程序的参数。 dir_path 是程序查找所需数据的地方。 program.pl 是我尝试使用的 perl 脚本。

通过命令行运行脚本没有问题。 使用我的代码运行时 - 似乎 perl 脚本根本没有运行(我不确定),如果它运行并且失败,我没有得到程序的输出。

【问题讨论】:

【参考方案1】:

也许您错过了 Arguments 中的空格?

perlStartInfo.Arguments = "C:\\e\\oa\\Evergreen\\evg\\scripts\\helper\\program.pl -config " + config_location;

【讨论】:

成功了。不敢相信它是如此简单。谢谢!

以上是关于无法使用 C# 运行 perl 脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 Perl 脚本中无法将目录添加到存档

Perl 无法在 cronjob 中连接到 Oracle DB

如何配置 Apache 2 以运行 Perl CGI 脚本?

如何以 root 身份运行 Perl 脚本但仍会影响用户 gconf 设置

Perl 和 CopSSH

通过 perl 脚本运行 Web 服务器的问题