RGu*_*erg 17 batch-file windows-server-2012
我有一台运行异常的 Server 2012 R2 标准 64 位虚拟机。Bat 文件工作正常,CMD 窗口正常关闭;但是如果在执行 bat 文件期间关闭了包含 bat 文件的文件夹,它将完成但 CMD 窗口不会关闭。我已经将其简化为拥有最简单的 bat 文件。它包含 1 行。暂停
这仅发生在一台机器上。有人知道为什么会这样吗?这是一个测试虚拟机,也许应该重建,但它让我很好奇。谢谢
我用包含以下内容的文件替换了我的简单 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
Run Code Online (Sandbox Code Playgroud)
结果如下所示:
.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 . . .
Run Code Online (Sandbox Code Playgroud)
命令行
04/13/2016 在执行此操作时,我确实通过查看任务管理器发现了更多信息。当我启动 bat 文件时,任务管理器 - 详细信息窗口中出现 2 行... cmd.exe 1 行,conhost.exe 1 行。当 bat 完成时 cmd.exe 消失,但 conhost.exe 仍然存在。我注意到的另一件事是,您实际上不必像我之前所说的那样退出 Windows 资源管理器文件夹……您所要做的就是单击资源管理器窗口中的任意位置。如果我不在资源管理器窗口中的任何位置单击,bat 文件的 CMD 窗口将正常关闭,并且两个任务都从我们预期的详细信息窗口中消失。
这不太可能,但你似乎已经排除了所有可能的事情。检查以下两个注册表项,看看它们是否包含任何内容:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
Run Code Online (Sandbox Code Playgroud)
或者
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor
Run Code Online (Sandbox Code Playgroud)
每次运行批处理文件时都会调用其中的任何内容,如果有的话cmd /k就会导致此行为。
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |