注:此問題與我在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是一個.NET 3.5的程序(C#編寫)運行在Windows Server 2003 R2 Standard x64 Edition SP2上。請注意,第二個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」? – 2015-02-11 20:07:03
顯然有'STDIN'和/或'STDOUT'和/或'STDERR'句柄出了問題。接下來可以幫助:'開始'「/ D%DIR%\/WAIT%DIR%\ OFCNSFilter.exe ...' – JosefZ 2015-02-11 20:30:22