版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/heyuqian_csdn/article/details/73691812
批处理中如果需要在循环中定义变量,在脚本中加上如下内容即可:
setlocal EnableDelayedExpansion
最近用批处理处理文本中的字符串,由于没有写过批处理脚本,在循环中使用了变量,死活不对,太坑了
文本内容如下:
maxp2ga0=0x204e
pa2gw0a0=0xfe64
pa2gw1a0=0x1667
pa2gw2a0=0xfa6a
maxp2ga1=0x204e
pa2gw0a1=0xfe2f
pa2gw1a1=0x1563
pa2gw2a1=0xfa64
由于大小端问题,需要将变量的值比如0x204e修改为0x4e20
脚本如下:
@echo off
setlocal EnableDelayedExpansion
set file=caldatafile_4366
if exist %file%_original (
echo file %file% have already been reverted, just return!
pause
exit
)
for %%f in (%file%) do (
for /f "tokens=1,2 delims==" %%i in (%%f) do (
echo %%i %%j
set data=%%j
set below=!data:~4,2!
set up=!data:~2,2!
echo !below!
echo !up!
echo.%%i=0x!below!!up!>>"%%~nf.new"
)
)
ren %file% %file%_original
ren %file%.new %file%
echo revert successfu!
pause