0

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

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

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

4

5 回答 5

5

尝试使用如下命令行运行 Perl 脚本:

perl script.pl & exit

& 符号将在第一个命令完成后启动第二个命令。您也可以使用&&仅在第一个命令成功时执行第二个命令(错误代码为 0)。

于 2010-01-12T14:05:33.277 回答
4

你试过cmd.exe /C perl yourscript.pl吗?

根据cmd.exe /? /C执行字符串指定的命令然后终止。

于 2010-01-12T13:54:05.000 回答
3

您可以使用START Dos 命令在新窗口中启动程序。如果您调用它,/B则不会创建其他窗口。然后你可以调用 EXIT 来关闭当前窗口。

这能行吗?

于 2010-01-12T13:52:40.003 回答
3

如果您只是为了运行 perl 脚本而启动命令 shell,那么 Arkaitz Jimenez 的答案应该可以工作(我投了赞成票。)

如果没有,您可以创建一个批处理文件,例如runmyscript.bat,内容:

@echo off
perl myscript.pl
exit

exit结束 shell 会话(并作为副作用,结束批处理脚本本身。)

于 2010-01-12T14:09:01.187 回答
0

您可以从 Perl 向父 shell 发送信号:

 kill(9,$PARENT_PID);`

不幸的是,该getppid()功能没有在 Windows 上的 Perl 中实现,因此您必须通过其他方式找出父 shell PID。此外,信号 #9 可能不是最佳选择。

于 2010-01-12T13:54:19.610 回答