在Windows 7上,我有一个可执行文件,比如immutableProg.exe
,我想用某些参数调用它3次。这是由批处理文件myBatch.bat
完成的。
myBatch.bat
:的内容
immutableProg.exe -a
immutableProg.exe -b
immutableProg.exe -c
可执行文件immutableProg.exe
确实有一个特殊的--keep
开关,它可以阻止可执行文件返回,直到用户按下任何键。现在我想添加--keep
开关,当且仅当我的批次myBatch.bat
被双击时,如:
immutableProg.exe -a
immutableProg.exe -b
immutableProg.exe -c --keep
如果用户从命令行调用批次,则不应添加。
问题:我如何(从我的批次视图中)发现它是通过双击还是从命令行打开的?
不幸的是,更改immutableProg.exe
的默认行为不是一个选项,也不是从命令行给批处理文件一个额外的参数。
%cmdcmdline%
给出了用于启动当前Cmd.exe的确切命令行。
从命令控制台启动时,此var为"%SystemRoot%system32cmd.exe"
。
从资源管理器启动时(双击),此var为cmd /c ""{full_path_to_the_bat_file}"
要实际使用haxtbh答案中的信息,可以执行以下操作。它不是傻瓜式的,但通常效果很好。这将是一个不同寻常的情况下,它会给出一个错误的读数。
echo %cmdcmdline%|find /i """%~f0""">nul && echo doubleClick || echo console launch