windows批处理脚本 遇错中断执行 15
bat脚本默认出现错误忽略,继续运行脚本。那么如果现在我的脚本的功能是从本地传输文件到远程,然后因为比如网络原因导致的远程连接失败(找不到远程文件夹之类的),希望批处理能...
bat脚本默认出现错误忽略,继续运行脚本。
那么如果现在我的脚本的功能是从本地传输文件到远程,然后因为比如网络原因导致的远程连接失败(找不到远程文件夹之类的),希望批处理能中断,请问有语句吗? 展开
那么如果现在我的脚本的功能是从本地传输文件到远程,然后因为比如网络原因导致的远程连接失败(找不到远程文件夹之类的),希望批处理能中断,请问有语句吗? 展开
展开全部
批处理有个获取上一句运行是否成功的变量%errorlevel%,成功为0,失败为1或其他值。
可以在特定命令的下一行检测该值,例子:
@dir c:\ /ad>c:\cdirlog.txt
@if %errorlevel%==0 (
@echo log success!
) else (
@echo log failed!
)
大多数cmd命令和dos工具运行后都能得到该反馈,但也有个别得不到的。
可以在特定命令的下一行检测该值,例子:
@dir c:\ /ad>c:\cdirlog.txt
@if %errorlevel%==0 (
@echo log success!
) else (
@echo log failed!
)
大多数cmd命令和dos工具运行后都能得到该反馈,但也有个别得不到的。
追问
大神,我的脚本如下,但是if和else里的语句都执行了:
@copy /y "%%i" "G:\test1\%%~nxi"
@if %errorlevel%==0 (
@move /y "%%i" "D:\bak\%%~nxi")
else (
@echo %date% %time% %%~ni failed! >>errorfile.txt
@exit
)
)
追答
bat中if else的格式非常重要,您这个写法就跟没有else一样。else前后的)(必须和else在同一行,才能正确识别逻辑。
所以必须写成:
) else (
另外,您结尾多了一个)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询