中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 19:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件的文字与字母替换问题?
楼 主 文件的文字与字母替换问题? 发表于 2006-10-15 10:36 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
UID 63170
来自 广东深圳
状态 离线
我想对一文本文件里边有英文字母替换成我想要的字符,这个功能能实现吗?

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

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

!!!!


[ Last edited by namejm on 2006-10-15 at 11:10 ]
2 发表于 2006-10-15 10:48 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
3 发表于 2006-10-15 10:52 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
用记事本嘛。要用 正则的话用UltraEdit 即可

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
4 发表于 2006-10-15 10:54 ·  中国 四川 成都 移动
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  只要你想把某个字母换成指定字符,在CMD下都是可行的——换成敏感字符除外。请把你要转换的具体内容帖出来。

  另外,请不要把字号弄得太大。虽然你可能很着急,但是字体太大会很占版面,给论坛的管理带来不便。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-10-15 11:05 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
UID 63170
来自 广东深圳
状态 离线
我就是想把下面这段字符


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 发表于 2006-10-15 11:09 ·  中国 四川 成都 移动
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  请把你的字母转换清单列完,不列完没法写代码。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
7 发表于 2006-10-15 11:10 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
8 发表于 2006-10-15 12:01 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  强烈建议楼主用记事本或者其它的第三方文本编辑工具完成这个任务,如果用批处理来解决的话,这样将会死很多脑细胞。
 
  望楼主三思而行。
9 发表于 2006-10-15 12:47 ·  中国 四川 成都 移动
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  其实用批处理来解决是可行的,并且效率也比较高。比如,用如下代码就可以实现第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
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
10 发表于 2006-10-15 21:42 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
怎么觉得楼主这个编码象是 自创输入法的编码啊?哈哈……

[ Last edited by redtek on 2006-10-15 at 21:43 ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
11 发表于 2006-10-15 22:51 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
UID 63170
来自 广东深圳
状态 离线
TO redtek:
这是别人给我的一个文件,,告诉我说,只要用特定字符替换掉里边的字母数字就可以知道是什么东东了.我也没办法,,,,

TO lxmxn:
你说用记事本,如果有很多(就是说比上面的多呢.一个一个替换太烦人了.)怎么办.
12 发表于 2006-10-15 23:10 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
UID 63170
来自 广东深圳
状态 离线
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 发表于 2006-10-15 23:55 ·  中国 广东 深圳 福田区 电信
初级用户
★★
积分 133
发帖 57
注册 2006-03-15 23:12
UID 52128
状态 离线
学习ing
14 发表于 2006-10-16 00:08 ·  中国 浙江 宁波 鹏博士宽带
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
你的问题用 linux & unix 下的 tr 命令再合适不过了。
sed 也可以完成 tr 的命令,试试下面的代码:

sed "y/AaBbCc0123456789/啊阿不把才出aoeuiuvlby/" file.txt


sed 下载地址:http://www.student.northpark.edu/pemente/sed/gsed407x.zip
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

15 发表于 2006-10-16 01:35 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
UID 63170
来自 广东深圳
状态 离线
我想用批处理来实现...!!!
论坛跳转: