如何通过双击或命令行来确定是否打开了批处理文件



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

相关内容

  • 没有找到相关文章

最新更新