码迷,mamicode.com
首页 > 其他好文 > 详细

bat脚本踩坑记

时间:2019-05-14 19:24:39      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:bat脚本   检查   wechat   系统   str   判断语句   匹配   echo   exe   

背景:由于系统需求写个小小的判断语句判断语句是否执行成功,但好像总是执行成功的分支
脚本如下:
@echo off
set logfile=E:\log.txt
tasklist /V /S localhost | findstr Wechat.exe
if errorlevel 0 goto a
if errorlevel 1 goto b
:a
echo 123>%logfile%
exit
:b
echo 234>%logfile%
exit

检查日志发现总是写的123,这是为什么呢?
使用 if errorlevel 的时候,应该把数字高的放在前面,因为此处的 if errorlevel 0 是在命令返回值大于 0 的时候成立的,相当于 if %errorlevel% geq 0,而当匹配失败时 errorlevel 等于 1,当然符合大于 0 的条件了。
解决办法:
1、调转顺序,先执行 errorlevel 值高的 if 命令
2、使用 if %errorlevel%==0 这里的 %errorlevel% 将被预处理成固定值,与数字 0 进行数值比较,也就不存在返回值大于 0 时产生的问题了

bat脚本踩坑记

标签:bat脚本   检查   wechat   系统   str   判断语句   匹配   echo   exe   

原文地址:https://blog.51cto.com/6464430/2394566

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!