![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 02:27 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助!如何用批处理实现有规律的批量替换字母? |
| 可打印版本 1,032 / 4 |
| 第1楼 henryxrl | 发表于 2010-09-17 12:56 |
| 新手上路 发帖 3 积分 3 | |
|
求助!如何用批处理实现有规律的批量替换字母? 一个朋友恶搞,把一封英文的email中所有的字母都向前移了3位。
例如:现在的d其实是a,现在的p其实是m,现在的a其实是,现在的odzuhqfh应该是Lawrence... 对应关系是这样的: set str1=defghijklmnopqrstuvwxyzabc :: str1 is to be decoded set str2=abcdefghijklmnopqrstuvwxyz 受小写转大写.cmd的启发,我想能不能也一个吧这封email还原的批处理。。。 于是: @echo off set str1=defghijklmnopqrstuvwxyzabc :: str1 is to be decoded set str2=abcdefghijklmnopqrstuvwxyz :main cls set str= set /p str= Please enter string (Press ENTER if you want to exit directly): if not defined str exit cls echo. echo Before decoded: "%str%" echo. for /l %%i in (0,1,25) do ( call set char1=%%str1:~%%i,1%% call set char2=%%str2:~%%i,1%% call :change ) echo ____________________________________________ echo. echo Decoded: "%str%" echo. echo Press any buttom to decode again...... pause>nul goto main :change call call set str=%%%%str:%%char1%%=%%char2%%%%%% goto :eof @echo off 本以为万事大吉,但可惜g到c对应的是对的,即d到z,但是最前面的d,e,和f所对应的并不是a,b,和c,而是x,y,和z!!这到底是怎么回事?或者说,有什么别的方法能达到同样的效果?本人是绝对的菜鸟,请大家多多关照。。。 [ Last edited by henryxrl on 2010-9-17 at 12:59 ] |
|
| 第2楼 slore | 发表于 2010-09-17 22:46 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
set str1=abcdefghijklmnopqrstuvwxyz`#@
:: str1 is to be decoded set str2=`#@abcdefghijklmnopqrstuvwxyz for /l %%i in (0,1,28) do ( [ Last edited by slore on 2010-9-17 at 23:16 ] |
|
| 第3楼 henryxrl | 发表于 2010-09-18 02:45 |
| 新手上路 发帖 3 积分 3 | |
|
WOW!!! 成功了!!太感谢了!!! 但是。。。为什么这样能行呢?能否告知原理?还有,`#@是什么东东?
|
|
| 第4楼 slore | 发表于 2010-09-18 17:21 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你原来d换成a
a又换成x 现在用~◎#就是个临时。。。这样是为了区别是你本身有的abc,还是def替换后的abc 你原来的方式是看不到abc的。。。abc都对应换成了xyz |
|
| 第5楼 henryxrl | 发表于 2010-09-20 10:39 |
| 新手上路 发帖 3 积分 3 | |
|
明白了,多谢指点~
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |