我有一个.bat文件,可以进行一些处理并打印一些输出,人们可能想检查输出。不同的人(取决于他们的个人偏好和工作流程)以不同的方式运行此文件:一些使用“开始 - >运行”对话框,一些从资源管理器启动它,一些启动cmd.exe
然后从那里启动此.bat文件。
如果我只将pause
放在.bat文件的末尾,它将允许不从cmd
运行它的用户看到输出,但它会阻止运行它的那些来自cmd
,因为他们需要无缘无故地按任意键(在任何情况下都不会丢失输出)。如果我不放pause
,则不使用cmd
的人将看不到输出。
我想检测是否已分配新控制台以运行.bat文件并运行或不运行pause
,具体取决于它。可能吗?或者还有其他解决方案吗?
答案 0 :(得分:3)
为批处理添加一个参数,当从快捷方式运行时会导致暂停被激活但从cmd.exe运行时不会
iow:
if "%1"=="" goto nopause
pause
:nopause
答案 1 :(得分:1)
最简单的方法是创建两个仅在该点不同的.bat文件。
或者,您可以使用主.bat和.bat来调用主批处理文件,其参数说“请在完成任务后请关闭我”。