|
|
目的:替换test.txt的字符,test.txt内容:
11111 55111
2222 222
33 333 333111
4411 444
批脚本1(用call不用变量延迟失败):
@echo off
for /f "delims=*" %%a in (d:\test.txt) do (
set var=%%a
set var=%var:11=6%
call echo %%var%% >>testok.txt
)
pause
执行后d:\testok.txt的内容为
11=6
11=6
11=6
11=6
批脚本2(启用变量延迟能实现目的):
@echo off
for /f "delims=*" %%a in (d:\test.txt) do (
setlocal enabledelayedexpansion
set var=%%a
set var=!var:11=6!
@echo !var! >>testok.txt
)
pause
执行后d:\testok.txt的内容为
661 5561
2222 222
33 333 33361
446 444
不明白的是批脚本1(用call不用变量延迟)到底是哪里出错了?
[ 本帖最后由 FLOPPY 于 2011-9-16 13:27 编辑 ] |
|