Board logo

标题: 16进制小写变大写,另外编码格式有变化怎么做 [打印本页]

作者: zhangyn1217     时间: 2007-9-25 21:50    标题: 16进制小写变大写,另外编码格式有变化怎么做

请教各位大虾。我在工作中遇到了要把一个文本中的16进制中的小写转换成大写,并且要求把格式也改变后重新写到这个文本中去。例如:2000000这个文本内容如下:
001a6b0a0b0f 0000 0000 0000 0000 0000 0000 0000 0000#
001a6b0a0b10 0000 0000 0000 0000 0000 0000 0000 0000#
001a6b0a0b11 0000 0000 0000 0000 0000 0000 0000 0000#
001a6b0a0b12 0000 0000 0000 0000 0000 0000 0000 0000#
改变后如下:
001A6B0A0B0F 00000000 00000000 00000000 00000001
001A6B0A0B10 00000000 00000000 00000000 00000001
001A6B0A0B11 00000000 00000000 00000000 00000001
001A6B0A0B12 00000000 00000000 00000000 00000001
感谢大家帮忙!:P
作者: junchen2     时间: 2007-9-25 22:46
setlocal enabledelayedexpansion
for /f "tokens=1-9" %%a in (1.txt) do (
set a=%%a &set a=!a:a=A!&set a=!a:a=A!&set a=!a:b=B!&set a=!a:c=C!&set a=!a:d=D!&set a=!a:e=E!&set a=!a:f=F!
set i=%%i &set i=!i:#=1!
echo !a! %%b%%c %%d%%e %%f%%g %%h!i!>>2.txt
)
pause
作者: zhangyn1217     时间: 2007-9-25 22:55
不胜感谢!能否逐行的解释一下。如果源文件的名字每次都不要一样,该怎么写。我是想在开始的地方加个询问要改的文件命的动作。
作者: junchen2     时间: 2007-9-25 23:16
dir /b /s 源文件所在的文件夹路径 >>list.txt
for /f %%a in (list) do (
call :str %%~sa %%~nxa
)
:str
setlocal enabledelayedexpansion
for /f "tokens=1-9" %%a in (%1) do (
set a=%%a &set a=!a:a=A!&set a=!a:a=A!&set a=!a:b=B!&set a=!a:c=C!&set a=!a:d=D!&set a=!a:e=E!&set a=!a:f=F!
set i=%%i &set i=!i:#=1!
echo !a! %%b%%c %%d%%e %%f%%g %%h!i!>>%2.txt
)
goto :eof

这个BAT文件不要放在源文件所在的文件夹里面

[ Last edited by junchen2 on 2007-9-25 at 11:18 PM ]