windwos errorlevel变量获取XCOPY返回值,if判断失效处理

折腾了好久,windows  bat脚本的if语句就是一个坑 特别是对于不熟悉bat脚本的来说

查看了cmd 下if的用法  

然后了解了  errorlevel   才最终解决问题

 注意:

开启变量延迟的设置:setlocal EnableDelayedExpansion,即延迟环境变量扩展,告诉解释器在遇到复合语句的时候,不要将其作为一条语句同时处理,而是一条一条地去解释。但是这时如果仍然用百分号%来引用变量是不起作用的,必须用感叹号!,如!errorlevel!。

代码如下  成功获取XCOPY返回值  并按照预定执行

......

@echo "-*****************准备复制文件******************- "

::开启延迟环境变量
setlocal enabledelayedexpansion

XCOPY %SourceDir%51200* %NetDir%dates /y /q

if !errorlevel! == 0 (
echo !errorlevel!
del /f /q %SourceDir%51200*
) else (
echo "复制错误 准备重新尝试.."

)

 %SourceDir%51200*   是源文件 

%NetDir%dates    是目标

.

参考:  https://blog.csdn.net/hwhua1986/article/details/72770057

原文地址:https://www.cnblogs.com/ChenChangXiong/p/11098283.html