中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 17:56
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 文件的文字与字母替换问题?
可打印版本  6,036 / 29
第1楼 zouzhxi 发表于 2006-10-15 10:36
中级用户 发帖 177 积分 430 来自 广东深圳
文件的文字与字母替换问题?
我想对一文本文件里边有英文字母替换成我想要的字符,这个功能能实现吗?

比如:我想对字母R替换成"日",r替换成"人"等等。。。

可以让我自己控制某个字母替换成特定字符。。。

!!!!


[ Last edited by namejm on 2006-10-15 at 11:10 ]
第2楼 不得不爱 发表于 2006-10-15 10:48
超级版主 发帖 2,044 积分 5,310 来自 四川南充
你到底要替换些什么?
第3楼 electronixtar 发表于 2006-10-15 10:52
铂金会员 发帖 2,672 积分 7,493
用记事本嘛。要用 正则的话用UltraEdit 即可
第4楼 namejm 发表于 2006-10-15 10:54
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  只要你想把某个字母换成指定字符,在CMD下都是可行的——换成敏感字符除外。请把你要转换的具体内容帖出来。

  另外,请不要把字号弄得太大。虽然你可能很着急,但是字体太大会很占版面,给论坛的管理带来不便。
第5楼 zouzhxi 发表于 2006-10-15 11:05
中级用户 发帖 177 积分 430 来自 广东深圳
我就是想把下面这段字符


M1QJZSHQ200D00A01e01e00WCWB00WIBC00W01H00W02901A01B01D01A01901D01901E01A02B00D00A01e01e00WDe100WIBC00W01H00W02902K01F02K01B02K02b02M01F02B00D00ALBPC11CWBIBC00W01H00W02901B01B01801D01901901801G01F01D01701F01801A01B01G01E01902B00D00AF89IIcMY6N9W00W01H00W02902e02T02Z02d02N02e02M02B00D00AF89IIcIW2Fa500W01H00W02902e02T02Z02d02N02e02M02J02S02L02B00D00ADcMCGCM1FIYD00W01H00W02902e02T02Z02e02M02c02N01N01801D01A01502H02T02R02B


相对应的换成下面文字


A=啊 a=阿 B=不 b=把 C=才 c=出 ……
0=a 1=o 2=e 3=u 4=i 5=u 6=v 7=l 8=b 9=y


就可以了。就这么简单...
第6楼 namejm 发表于 2006-10-15 11:09
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  请把你的字母转换清单列完,不列完没法写代码。
第7楼 不得不爱 发表于 2006-10-15 11:10
超级版主 发帖 2,044 积分 5,310 来自 四川南充
那你还不如用记事本来完成
第8楼 lxmxn 发表于 2006-10-15 12:01
版主 发帖 4,938 积分 11,386

  强烈建议楼主用记事本或者其它的第三方文本编辑工具完成这个任务,如果用批处理来解决的话,这样将会死很多脑细胞。
 
  望楼主三思而行。
第9楼 namejm 发表于 2006-10-15 12:47
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  其实用批处理来解决是可行的,并且效率也比较高。比如,用如下代码就可以实现第5楼的部分功能(因为部分替换会多次执行而导致结果不准确,所以剔除了部分替换规则):
第10楼 redtek 发表于 2006-10-15 21:42
金牌会员 发帖 1,147 积分 2,902
怎么觉得楼主这个编码象是 自创输入法的编码啊?哈哈……

[ Last edited by redtek on 2006-10-15 at 21:43 ]
第11楼 zouzhxi 发表于 2006-10-15 22:51
中级用户 发帖 177 积分 430 来自 广东深圳
TO redtek:
这是别人给我的一个文件,,告诉我说,只要用特定字符替换掉里边的字母数字就可以知道是什么东东了.我也没办法,,,,

TO lxmxn:
你说用记事本,如果有很多(就是说比上面的多呢.一个一个替换太烦人了.)怎么办.
第12楼 zouzhxi 发表于 2006-10-15 23:10
中级用户 发帖 177 积分 430 来自 广东深圳
Originally posted by namejm at 2006-10-15 12:47:
  其实用批处理来解决是可行的,并且效率也比较高。比如,用如下代码就可以实现第5楼的部分功能(因为部分替换会多次执行而导致结果不准确, ...

@echo off
cd.>2.txt
setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
set var=%%i
set "var=!var:A=啊!"
set "var=!var:a=阿!"
set "var=!var:B=不!"
set "var=!var:b=把!"
set "var=!var:C=才!"
set "var=!var:c=出!"
set "var=!var:1=o!"
set "var=!var:2=e!"
set "var=!var:3=u!"
set "var=!var:4=i!"
set "var=!var:5=u!"
set "var=!var:6=v!"
set "var=!var:7=l!"
set "var=!var:9=y!"
>>2.txt echo !var!
)
start 2.txt






怎么用起来大小写不分...这怎么解决???

[ Last edited by zouzhxi on 2006-10-15 at 23:11 ]
第13楼 kingchain 发表于 2006-10-15 23:55
初级用户 发帖 57 积分 133
学习ing
第14楼 无奈何 发表于 2006-10-16 00:08
荣誉版主 发帖 356 积分 1,338
你的问题用 linux & unix 下的 tr 命令再合适不过了。
sed 也可以完成 tr 的命令,试试下面的代码:


sed 下载地址:http://www.student.northpark.edu/pemente/sed/gsed407x.zip
第15楼 zouzhxi 发表于 2006-10-16 01:35
中级用户 发帖 177 积分 430 来自 广东深圳
我想用批处理来实现...!!!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023