批處理文字字串處理-如何在迴圈中定義變數
阿新 • • 發佈:2019-01-26
批處理中如果需要在迴圈中定義變數,在指令碼中加上如下內容即可:
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