找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 78519|回复: 22

[文本处理] 批处理怎样把一个16进制数据的文本文件转成ASCII的文本文件?

[复制链接]
发表于 2012-1-31 21:30:11 | 显示全部楼层 |阅读模式
我在做EEPROM读取的时候得到一个全是16进制数据的文件。如:61 62 63 ......其实它就是对应ASCII中的abc。现在我想用一个批处理把上面的16进制数据文件转成ASCII文件,那怎么写批处理呢?我在批处理之家看到过相应的批处理文件,那个确实也好用。不过实在太长了,我真心看不懂。虚心请教各位高手,有没有简单一点,我容易理解的程序啊?
发表于 2012-1-31 21:49:56 | 显示全部楼层
你看到的是哪个?给个链接看看有多长
 楼主| 发表于 2012-1-31 21:59:53 | 显示全部楼层
http://bathome.l3.wuyou.com/viewthread.php?tid=8899&rpid=71601&ordertype=0&page=1#pid71601看到的是这个。看到头都大了,我不需要这么多功能的。
发表于 2012-1-31 22:04:31 | 显示全部楼层
回复 2# find


    有空我给你找找  这种编辑器我收藏了一些
发表于 2012-1-31 22:12:55 | 显示全部楼层
找到一个 是字符 到 ascii再到 16


说是附件过大啊

要么你邮箱   


百度一下 ascii 转码 或者 ascii 16进制  这些关键字 多找找
 楼主| 发表于 2012-1-31 22:12:58 | 显示全部楼层
大家有办法吗。这个是可以实现,不过老实说我真不知道用什么办法
发表于 2012-1-31 22:15:12 | 显示全部楼层
能否把你的16进程数据保存到txt文件里面压缩一下传上来,我测试一下转换代码。
 楼主| 发表于 2012-1-31 22:47:40 | 显示全部楼层
文件非常简单
如:61 62 63 64 5C 5D 5E
这样一个16进制数加一个空格再加一个16进制数,再是一个空格,这样下去的的文本文件
发表于 2012-1-31 23:21:12 | 显示全部楼层
  1. @echo off
  2. set "FileASCII=C:\Test\a.txt"
  3. set "FileResult=%temp%\DecResult.txt"
  4. set ChrNum=
  5. set /p DecCode=<"%FileASCII%"
  6. set DecCode=head %DecCode% tail

  7. :Num2Chr
  8. set DecCode=%DecCode:* =%
  9. if "%DecCode%" neq "tail" (
  10.     if "%DecCode%" neq "" (
  11.         call :SplitDec 0x%DecCode%
  12.         goto :Num2Chr
  13.     )
  14. )
  15. echo OutPutFile="%FileResult%">"%temp%\Decode.vbs"
  16. echo Set objFSO=CreateObject("Scripting.FileSystemObject")>>"%temp%\Decode.vbs"
  17. echo Set objTXT=objFSO.CreateTextFile(OutPutFile,True,False)>>"%temp%\Decode.vbs"
  18. echo ChrVBS=""%ChrNum%>>"%temp%\Decode.vbs"
  19. echo objTXT.Write ChrVBS>>"%temp%\Decode.vbs"
  20. cscript //nologo "%temp%\Decode.vbs"
  21. start "" "%FileResult%"
  22. goto:eof

  23. :SplitDec
  24. set ChrNum=%ChrNum%+Chr(%1)
复制代码
 楼主| 发表于 2012-2-1 15:00:36 | 显示全部楼层
谢谢find 。可以我用了一下不行啊。显示缺少“)”什么的。我了一下是使用VBS来实现的,那直接使用VBS是不是更好,更简单?
发表于 2012-2-1 23:52:45 | 显示全部楼层
回复 10# height


你懂VBS的话,自己写个试试吧。
发表于 2012-2-1 23:53:25 | 显示全部楼层
能否把你测试时使用的txt文件压缩一下传上来我试试
发表于 2012-2-2 09:48:18 | 显示全部楼层
可以用DEBUG
 楼主| 发表于 2012-2-2 19:03:57 | 显示全部楼层
就是这个东西。刚才有同学说debug,具体实现的办法是怎么样的啊?能否讲一下
发表于 2012-2-2 19:55:19 | 显示全部楼层
简易debug版:
  1. @echo off
  2. set db=61 62 63 64 65
  3. (echo e0100 %db%
  4. echo r cx
  5. echo 5
  6. echo n xyz.txt
  7. echo w
  8. echo q)|debug
  9. start xyz.txt
复制代码
bat版(abc.txt文件放在当前目录内):
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. call ascmap.cmd /437 $||(echo ascmap.cmd文件缺失&pause&exit)
  4. for /f "delims=" %%a in (abc.txt)do set str=%%a&set str=#$:~0x!str: =,1##$:~0x!,1#&call:ECHO
  5. pause
  6. :ECHO
  7. ECHO %str:#=^!%
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 17:55 , Processed in 0.022887 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表