折腾了好久,windows bat脚本的if语句就是一个坑 特别是对于不熟悉bat脚本的来说
查看了cmd 下if的用法
然后了解了 errorlevel 才最终解决问题
注意:
开启变量延迟的设置:setlocal EnableDelayedExpansion,即延迟环境变量扩展,告诉解释器在遇到复合语句的时候,不要将其作为一条语句同时处理,而是一条一条地去解释。但是这时如果仍然用百分号%来引用变量是不起作用的,必须用感叹号!,如!errorlevel!。
代码如下 成功获取XCOPY返回值 并按照预定执行
......
@echo "-*****************准备复制文件******************-\r\n"
::开启延迟环境变量
setlocal enabledelayedexpansionXCOPY %SourceDir%\51200* %NetDir%\dates\ /y /q
if !errorlevel! == 0 (
echo !errorlevel! del /f /q %SourceDir%\51200* ) else ( echo "复制错误 准备重新尝试.." )
%SourceDir%\51200* 是源文件
%NetDir%\dates\ 是目标
.
参考: