我有一个运行异常的Server 2012 R2 Standard 64位虚拟机。蝙蝠文件工作正常,CMD窗口正常关闭;但是,如果在执行bat文件的过程中关闭了包含bat文件的文件夹,它将完成,但CMD窗口不会关闭。我已经简化了这一点,使其具有最简单的bat文件。它包含1行。暂停
- 使用Windows资源管理器打开包含bat文件的文件夹
- 双击启动bat文件
- 关闭Windows资源管理器窗口
- 在CMD窗口中按任意键
- bat文件完成后,光标移至下一行
- CMD窗口保留
这仅在一台计算机上发生。有人知道为什么会这样吗?这是一个测试虚拟机,也许应该重新构建,但是我对此感到好奇。谢谢
我用包含以下内容的简单的bat文件替换了:
@assoc .bat
@for /F "tokens=1,* delims==" %%G in ('assoc .bat') do @ftype %%H
@reg query "HKLM\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@reg query "HKCU\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@echo please close Windows Explorer before continuing
@pause
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@pause
结果如下所示:
.bat=batfile
batfile="%1" %*
CommandLine ParentProcessId ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" " 1608 8460
please close Windows Explorer before continuing
Press any key to continue . . .
CommandLine ParentProcessId ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" " 1608 8460
Press any key to continue . . .
命令行
2016年4月13日,我确实通过查看任务管理器了解了更多信息。当我启动bat文件时,“任务管理器-详细信息”窗口中将出现2行... cmd.exe的1行和conhost.exe的1行。蝙蝠完成后,cmd.exe消失,但是conhost.exe保留。我注意到的另一件事是,您实际上不必像我之前所说的那样退出Windows资源管理器文件夹...您所要做的只是单击资源管理器窗口中的任何位置。如果未在“资源管理器”窗口中单击任何位置,则bat文件的CMD窗口将正常关闭,并且两个任务将从详细信息窗口中消失,这与我们期望的一样。
2
不幸的是我无能为力。但是,在提供一个准确描述您的问题的书面问题时,我必须给予补充,我希望更多的海报发布者花时间来写一个这样的书面问题。当然,我无法在Win 10机器上重现该行为。而且,由于您只看到一台特定计算机上的行为,因此任何人都可能难以诊断正在发生的情况。
—
dbenham '16
谢谢@dbenham。我尊重您的知识和您在批处理文件标签下在SO上的智慧。所以我是超级用户第一次来这里,但我知道您对新海报的意思。是的,我同意别人不可能重复...只是希望别人可能遇到过这种情况。它只是一个测试虚拟机,因此并不重要。只是想知道如果在客户的机器上发生过什么是什么。
—
RGuggisberg '16
@RGuggisberg-确保合并您的帐户,以便您可以编辑自己的问题。您不必添加已编辑问题的指示,系统会为您完成此操作,完全没有必要。
—
Ramhound
我的一个虚拟机上也遇到了同样的问题,这是我明确提到的
—
manjesh23 '16
exit
关闭CMD窗口的一种解决方法。可能这可能有所帮助。
您是否尝试过使用资源监视器的“分析等待链”功能来确定ConHost.exe进程正在等待哪个应用程序?
—
Xtremity '16