批处理 for里面的用if语句

我本地目录有个a.txt文件,内容如下:abcdefgi=123456hijklmn需要改a.txt里面的123456为654321,只是对123456做了一个判断,但运... 我本地目录有个a.txt文件,内容如下:
abcdefg
i=123456
hijklmn
需要改a.txt里面的123456为654321,只是对123456做了一个判断,但运行的时候,就出现
此时不应有:6!==123456
把echo放开,似乎没有执行for语句,直接跑到if了,难道for里面不能用if?刚学批处理,菜鸟一个,哪位大侠帮忙看看

@echo off
set i=123456
for /f "tokens=*" %%a in (a.txt) do (
echo begin for running.....
set var=%%a
if !var:~2,6!==%i% (set var=!var:123456=654321!) else (echo 不做改动!)
echo !var!
)
pause
展开
 我来答
百度网友c4249ef
2009-11-10 · TA获得超过4866个赞
知道大有可为答主
回答量:1855
采纳率:0%
帮助的人:3200万
展开全部
修改如下
1、启用延时变量处理用setlocal Enabledelayedexpansion
2、if !var:~2,6!==%i% 不支持这种写法

@echo off
setlocal Enabledelayedexpansion
set i=123456
for /f "tokens=*" %%a in (a.txt) do (
echo begin for running.....
set var=%%a
set var=!var:~2,6!
if !var! == %i% (set var=!var:123456=654321!) else (echo 不做改动!)
echo !var!
)
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千羽之城
2009-11-10 · TA获得超过4509个赞
知道大有可为答主
回答量:2132
采纳率:0%
帮助的人:1394万
展开全部
楼上第二点错误。这种写法是支持的,只是需要用引号包围起来,如:

if "!var:~2,6!"=="%i%"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式