中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 23:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 16进制小写变大写,另外编码格式有变化怎么做 查看 847 回复 3
楼 主 16进制小写变大写,另外编码格式有变化怎么做 发表于 2007-09-25 21:50 ·  中国 上海 黄浦区 电信
新手上路
积分 6
发帖 2
注册 2007-04-17 11:15
19年会员
UID 85499
性别 男
状态 离线
请教各位大虾。我在工作中遇到了要把一个文本中的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
2 发表于 2007-09-25 22:46 ·  中国 浙江 杭州 电信
高级用户
★★
积分 537
发帖 219
注册 2007-08-04 09:43
19年会员
UID 94620
性别 男
来自 杭州--半山
状态 离线
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
3 发表于 2007-09-25 22:55 ·  中国 上海 黄浦区 电信
新手上路
积分 6
发帖 2
注册 2007-04-17 11:15
19年会员
UID 85499
性别 男
状态 离线
不胜感谢!能否逐行的解释一下。如果源文件的名字每次都不要一样,该怎么写。我是想在开始的地方加个询问要改的文件命的动作。
4 发表于 2007-09-25 23:16 ·  中国 浙江 杭州 电信
高级用户
★★
积分 537
发帖 219
注册 2007-08-04 09:43
19年会员
UID 94620
性别 男
来自 杭州--半山
状态 离线
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 ]
论坛跳转: