我的batch file中的最后一行是pause
。 有没有办法添加if条件来查看脚本是在命令提示符下运行,还是通过双击执行? 如果它在命令提示符下运行,我想跳过暂停。
... ... if not RUN_IN_COMMAND_PROMPT ( pause )
编辑:希望find一个解决scheme在Windows Server 2003/2008,WinXP,Win7的作品。
CALL :GETMYSWITCH %CMDCMDLINE% IF /I "%MYSWITCH%" == "/C" ECHO I WAS STARTED IN THE EXPLORER & PAUSE IF /I NOT "%MYSWITCH%" == "/C" ECHO I WAS STARTED IN A DOS SESSION :GETMYSWITCH SET MYSWITCH=%2
根据定义,shell脚本总是在“命令提示符”中运行。 但是尝试使用SESSIONNAME
env var – 如果脚本是通过双击启动的,而不是从提示中手动运行它,似乎不存在。
我知道这是一年后,但未来的人搜索你可以使用
If /I "%COMSPEC%" == %CMDCMDLINE% Goto SkipPause pause :SkipPause
它将跳过暂停块。
使用tty
命令。
使用-s选项并检查返回值。