批处理 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 展开
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 展开
2个回答
展开全部
修改如下
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询