如果我从命令提示符(c:\ windows \ system32 \ cmd.exe)运行Perl脚本,如何在脚本完成执行后退出命令提示符。
我在Perl脚本中尝试了system("exit 0")
,但是没有从Perl脚本运行的地方退出cmd提示符shell。
我还在Perl脚本中尝试了exit;
命令,但这也不起作用。
答案 0 :(得分:5)
尝试使用如下命令行运行Perl脚本:
perl script.pl & exit
&符号将在第一个命令完成后启动第二个命令。您也可以使用&&
仅在第一个命令成功时执行第二个命令(错误代码为0)。
答案 1 :(得分:4)
您是否尝试过cmd.exe /C perl yourscript.pl
?
根据cmd.exe /?
/C
执行string指定的命令然后终止。
答案 2 :(得分:3)
您可以使用START Dos command在新窗口中启动该程序。如果您使用/B
调用它,则不会创建其他窗口。然后你可以调用EXIT关闭当前窗口。
那可以解决这个问题吗?
答案 3 :(得分:3)
如果您正在启动命令shell只是为了运行perl脚本,Arkaitz Jimenez的答案应该有效(我投了赞成票。)
如果没有,您可以创建像runmyscript.bat
这样的批处理文件,内容为:
@echo off
perl myscript.pl
exit
exit
将结束shell会话(作为副作用,结束批处理脚本本身。)
答案 4 :(得分:0)
您可以从Perl发送信号到父shell:
kill(9,$PARENT_PID);`
不幸的是,getppid()
函数没有在Windows上的Perl中实现,所以你必须通过其他方法找出父shell PID。此外,信号#9可能不是最佳选择。