1. 程式人生 > >批處理文字字串處理-如何在迴圈中定義變數

批處理文字字串處理-如何在迴圈中定義變數

批處理中如果需要在迴圈中定義變數,在指令碼中加上如下內容即可:

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