批处理文本字符串处理-如何在循环中定义变量

版权声明:本文为博主原创文章,未经博主允许不得转载。 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


猜你喜欢

转载自blog.csdn.net/heyuqian_csdn/article/details/73691812