windows - 检测 .bat 文件是否在为其分配的控制台中启动

标签 windows batch-file

<分区>

Possible Duplicate:
Conditional PAUSE (not in command line)

我有一个 .bat 文件,它执行一些处理并打印一些输出,人们可能想检查该输出。不同的人(取决于他们的个人偏好和工作流程)以不同方式运行此文件:一些使用“开始->运行”对话框,一些从资源管理器启动它,一些启动 cmd.exe 然后启动这个 .bat从那里归档。

如果我只是将 pause 放在 .bat 文件的末尾,它将允许不从 cmd 运行它的用户看到输出,但它使从 cmd 运行它的人感到沮丧,因为他们无缘无故地被要求按任意键(在任何情况下他们都不会丢失输出)。如果我不放置 pause,那么不使用 cmd 的人将看不到输出。

我想检测是否分配了新控制台来运行 .bat 文件并运行或不运行 pause 取决于它。可能吗?或者还有其他解决办法吗?

最佳答案

向批处理添加一个参数,从快捷方式运行时将激活暂停,但从 cmd.exe 运行时不会激活暂停

现在:

if "%1"=="" goto nopause
pause
:nopause

关于windows - 检测 .bat 文件是否在为其分配的控制台中启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4112834/

相关文章:

Windows 内核驱动程序签名和服务创建

Android Studio,清除只读状态不起作用

java - 如何将 Windows 批处理文件作为独立于 Java 的进程来执行?

batch-file - 批处理文件中的嵌套命令

windows - ntdll_77bc0000或ntdll_772d0000在Wow64调用堆栈中意味着什么

c++ - 尝试在注册表中创建值 - C++ - RegSetValueEx

css - Webfonts 在 OS X 和 Windows 之间不匹配

batch-file - 创建快捷方式,将参数添加到程序路径

java - 带参数的批处理文件执行 - [Java - OpenSSL]

batch-file - 计算机列表中的 PSexec 文件速度加快