我正在尝试运行一个在Windows XP上调用子进程的脚本。它最初是在Windows 7中设计的。一切似乎都可以保存spawn:
我运行一个命令
system "start", "cmd.exe", "/k","C:/path/perl.exe","C:/users/script.pl";
在Windows 7中,它会将script.pl
生成到新的控制台中。
XP中的相同命令告诉我它找不到start
。
当我跑步时
system "cmd.exe", "/k","C:/path/perl.exe","C:/users/script.pl";
它无法打开新的控制台。
如何在XP中的新控制台中生成新进程?
答案 0 :(得分:1)
我记不起关于XP的事情,但是在W7 start
上由cmd.exe
提供并且不是单独的可执行文件。所以我很惊讶在参数列表中首先看到它。
我认为原作者严重搞砸了,以便隐式运行cmd.exe
来执行start
,cmd.exe
然后运行第二个运行perl的system qw{ cmd.exe /K C:/path/perl.exe C:/users/script.pl }
副本。
最后,我假设你想要运行Perl程序并等到它完成,所以你需要
/K
我还认为/C
应该是qw
,因为前者在命令退出时要求shell再次提示,而后者只运行命令并停止。
检查你的里程。
哦,如果路径中有空格,你就不能使用{{1}}。