【发布时间】:2015-04-12 02:09:13
【问题描述】:
注意:这个问题与我 4 个月前提出的问题相似,但不是同一个问题。
我有以下批处理脚本:
@echo off
set DIR=U:\sendToJeff
echo Starting list filter...
%DIR%\OFCNSFilter.exe %DIR%\filter.ini %DIR%\OFCNS_FINAL_mod.xml %DIR%\outfile.xml
echo errorlevel = %errorlevel%
在 cmd 中运行时,我得到以下输出:
U:\sendToJeff>testscript.bat
Starting list filter...
U:\sendToJeff>
OFCNSFilter.exe 是一个在 Windows Server 2003 R2 Standard x64 Edition SP2 上运行的 .NET 3.5 程序(用 C# 编写)。注意第二个ECHO 命令没有被执行。但是,如果我 ECHO %ERRORLEVEL%,它是 0(0=成功,1=失败)。也很明显,程序实际运行是因为创建了 outfile.xml。
这就是我更加困惑的地方。如果我运行一次,我会得到上面的输出。但是,如果我尝试在同一个 cmd 窗口中多次运行它,我会得到以下输出:
U:\sendToJeff>testscript.bat
Starting list filter...
U:\sendToJeff>testscript.bat
U:\sendToJeff>
以前有没有人在批处理脚本中看到过这种行为?我将不胜感激有关如何解决此问题的任何见解。如果有帮助,我还会使用 System.Xml.Linq 库。
【问题讨论】:
-
我记得在从另一个 .cmd 调用 .cmd 时发生了类似的情况您是否尝试在第四行的开头添加 'call '?
-
显然
STDIN和/或STDOUT和/或STDERR句柄有问题。接下来可能会有所帮助:start "" /D%DIR%\ /WAIT %DIR%\OFCNSFilter.exe ...
标签: c# .net batch-file cmd windows-server-2003