【发布时间】:2011-08-17 02:54:23
【问题描述】:
我有一个 bat 文件,它可以做很多事情并关闭 cmd 窗口,当用户从资源管理器中双击 bat 文件时,这很好。但是,如果我从已经打开的 cmd 窗口运行 bat 文件,如 cmd>c:\myfile.bat ,那么我不希望 bat 文件关闭 cmd 窗口(END),因为我需要做其他事情。我需要能够执行类似操作的 bat dos 命令代码
if (initiated_from_explorer) then
else
endif
这可能吗?谢谢
【问题讨论】:
-
从 Windows 资源管理器运行时不会自动关闭吗?
-
正如迈克尔所说,你想要的是默认行为。听起来您在批处理文件的末尾有一个明确的退出命令。不要。
-
反之亦然 - 如果从资源管理器启动,我想保留
pause声明,但从 cmd.exe 启动时不保留。 -
类似@ECHO %CMDCMDLINE% | FIND /I /C "/C" > NUL && PAUSE 应该这样做,除非命令窗口以奇怪的方式打开并包含 "/C"。
-
顺便说一句,@ECHO %CMDCMDLINE% | FIND /I /C "/C" > NUL && TIMEOUT /T 9(或任何秒数)可能更有用,以避免在桌面上出现大量未关闭的窗口。