批处理文件以确定是否使用命令提示符

时间:2011-07-22 21:28:35

标签: windows batch-file

我的批处理文件中的最后一行是pause。是否有任何方法可以添加if条件以查看脚本是在命令提示符下运行还是双击执行?如果它在命令提示符下运行,我想跳过暂停。

...
...
if not RUN_IN_COMMAND_PROMPT (
  pause
)

编辑: 希望找到适用于Windows Server 2003/2008,WinXP,Win7的解决方案。

4 个答案:

答案 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选项并检查返回值。