我想将我脚本中的所有系统命令转换为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,但它与任务列表中的任何内容都不对应...(我假设创建的进程在我看到它显示在任务列表中之前结束)。 / p>
答案 0 :(得分:1)
根据你的评论,Windows说它创建了这个过程。根据您的问题,您甚至可以获得您声称从未创建过程的进程ID。我要走出去,说你错了。
您现在应该检查流程结束的代码。 perl -E'say $!=THECODE;'
可能会给你一个提示。但可能是因为你告诉Perl执行一个名为'C:\Users\script.pl'
的文件(而不是C:\Users\script.pl
)。