0

我想将脚本中的所有系统命令转换为 Win::32::Process::Create 命令。CPAN 告诉我语法:

Win32::Process::Create($obj,$appname,$cmdline,$iflags,$cflags,$curdir)

所以,我尝试应用它:

Win32::Process::Create( $Win32processObj,
                        "C:\\Perl64\\bin\\perl.exe",
                        "'C:\\Users\\script.pl','$arg'",
                         0,
                         NORMAL_PRIORITY_CLASS,
                         "." ) ||  die "Failed to create process.\n";

当我运行它时,我没有收到错误,但我也没有启动新进程......

当我使用 GetProcessID() 时,我得到一个 pid,但它与任务列表中的任何内容都不对应......(我假设创建的进程在我看到它显示在任务列表中之前就结束了)。

4

1 回答 1

1

根据您的评论,Windows 表示它创建了该过程。根据您的问题,您甚至拥有您声称从未创建过的进程的进程 ID。我要出去说你错了。

您现在应该检查该过程以什么代码结束。perl -E'say $!=THECODE;'可能会给你一个提示。但很可能是因为您告诉 Perl 执行一个名为'C:\Users\script.pl'(而不是C:\Users\script.pl)的文件。

于 2013-11-06T22:46:52.750 回答