我在Windows 2003服務器上使用調度系統,該系統需要批處理文件才能運行不同的作業。我有一個工作來檢查文件是否存在,比較文件是否爲空,然後根據結果做一些事情。每次運行這個時,返回的錯誤級別都是0,但文件不同。我期待看到1個返回。當文件不同時批處理文件比較返回0
我已驗證文件的位置,一個文件包含內容,另一個文件爲空。我設置的提示,他們他們都說%ERRORLEVEL%爲0。我甚至移動的文件是在批作業同一目錄中,但它們仍顯示爲0。
代碼:
echo %ERRORLEVEL%
IF EXIST data.DON (
echo before %ERRORLEVEL%
FC data.DON ZERO.SEQ
echo after %ERRORLEVEL%
IF %ERRORLEVEL% EQU 1 GOTO :PROCESS
)
輸出:
16:37:08.12 Thu 03/29/2012
>IF EXIST data.DON (
echo before 0
FC data.DON ZERO.SEQ
echo after 0
IF 0 EQU 1 GOTO :PROCESS
)
before 0
Comparing files data.DON and ZERO.SEQ
***** data.DON
Name|Date|Location
***** ZERO.SEQ
*****
after 0
我在不同的數據文件指向同一服務器上的其他工作這個確切的代碼,和它的作品。任何想法我可以嘗試?
謝謝你。我最終移動了if循環之外的支票,這對我很有用。 – MikeL 2012-03-30 12:22:23
當然!如果在括號外使用%errorlevel%,則此問題會消失。但要小心!如果您將同一行中的多個命令與&:上面的第一個示例結合使用,仍然存在問題,如果刪除括號,仍然會顯示「舊值」! – Aacini 2012-03-30 18:55:23