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