CMD / WMIC重定向错误

时间:2017-04-21 12:38:08

标签: cmd windows-server-2003 hang io-redirection wmic

我有一个CMD批处理文件,其中WMIC会挂起,具体取决于之前的命令。我把它修剪成以下内容:

Hello World!
Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/commons/net/ftp/FTPClient
        at com.myapp.app.App.main(App.java:16)
 Caused by: java.lang.ClassNotFoundException: 
org.apache.commons.net.ftp.FTPClient
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more

使用不同的命令而不是ECHO.< NUL > NUL WMIC /? ,重定向到ECHO.设备以外的其他文件或将不同的参数传递给NUL时,会发生同样的情况。这只是重现问题的最简单方法。添加WMIC无济于事。当直接输入/interactive:off提示符(保持“已损坏”)时也会发生这种情况。

结果CMD 等待用户输入,直到用户输入 Ctrl + Z 后才会继续在其自己的行上输入(或只需 Ctrl + C )。
但只有当(任何!)上一个命令输入输出重定向时......!? 作为副作用,创建了WMIC文件。

作为一种解决方法TempWmicBatchFile.bat解决了这种情况。这也会创建一个WMIC /? < NUL文件。

以前的行不应该影响TempWmicBatchFile.bat的行为!或者他们应该?

我发现有不同的人有这个问题,但没有解释。这只是一个错误吗?在WMIC?或者在Win32 API中?

所有这些都发生在具有Windows Server 2003 x64 SP2的虚拟机中。我的Windows 10机器按预期工作。

0 个答案:

没有答案