我在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