如何在调用Perl脚本后退出命令shell?

时间:2010-01-12 13:45:00

标签: perl exit cmd

如果我从命令提示符(c:\ windows \ system32 \ cmd.exe)运行Perl脚本,如何在脚本完成执行后退出命令提示符。

我在Perl脚本中尝试了system("exit 0"),但是没有从Perl脚本运行的地方退出cmd提示符shell。

我还在Perl脚本中尝试了exit;命令,但这也不起作用。

5 个答案:

答案 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可能不是最佳选择。

相关问题