我的批处理文件中的最后一行是pause
。是否有任何方法可以添加if条件以查看脚本是在命令提示符下运行还是双击执行?如果它在命令提示符下运行,我想跳过暂停。
...
...
if not RUN_IN_COMMAND_PROMPT (
pause
)
编辑: 希望找到适用于Windows Server 2003/2008,WinXP,Win7的解决方案。
答案 0 :(得分:7)
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
答案 1 :(得分:2)
我知道这是一年之后但是对于未来搜索的人你可以使用
If /I "%COMSPEC%" == %CMDCMDLINE% Goto SkipPause
pause
:SkipPause
它将跳过暂停块。
答案 2 :(得分:1)
根据定义,shell脚本总是在“命令提示符”中运行。但是尝试使用SESSIONNAME
env var - 如果脚本是通过双击启动而不是从提示符手动运行它,则似乎不存在。
答案 3 :(得分:0)
使用tty
命令。
使用-s选项并检查返回值。