[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理实现字符串反转倒序输出

这是JM的
  1. @echo off
  2. :: 反序显示输入,能处理 数字+字母(区分大小写)+符号 格式的混合型输入
  3. :: 区分大小写
  4. :: 稍加改造,可以实现密码的枚举?
  5. :: 不能处理的字符:
  6. :: 管道符号:|
  7. :: 重定向符号:<、>
  8. :: 连接符号:&
  9. :: 脱字或逃逸符号:%、^
  10. :: 其他符号:?、*、)、=、;、"
  11. :: code by jm 2006-9-7 CMD@XP
  12. cls
  13. set input=
  14. set /p input=           请输入一个字符串
  15. set output=
  16. if not "%input%"=="" set input=%input%
  17. :loop
  18. for %%i in (0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ~ ! @ # $ ^( - + . / \ [ ] { } : ') do (
  19.     (if %input:~-1% equ %%i set output=%output%%%i)&&set input=%input:~0,-1%
  20. )
  21. if not "%input%"=="" goto :loop
  22. echo        反序显示输入,结果是 %output%
复制代码
这是 也不知道哪里弄来的
  1. @echo off
  2. :star
  3. set Output=
  4. set /p Enter=请输入:
  5. :Start
  6. if not "%Enter%"=="" (
  7. set Output=%Output%%Enter:~-1%
  8. set Enter=%Enter:~0,-1%
  9. goto :Start)
  10. echo.
  11. echo        %Output%
  12. pause >nul&goto :Star
复制代码
还有一个是我无聊写写的
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set /p input=
  4. set n=1
  5. set "num=%input%"
  6. :begin
  7. set num1=!num:~-%n%,1!
  8. if "!num1!"=="" goto out
  9. set "src=!src!!num1!"
  10. set /a n=!n!+1
  11. goto begin
  12. :out
  13. echo !src!
  14. pause
复制代码
写这个有很多种的想法
JM版主写得是用for来查找相同的字符并对其赋值
我写的和第二个一样 只是单纯的对字符进行传输
对于非法字符也通过了
其实我很想知道为什么JM版主要用上这样的写法 和 这种写法有什么好处吗?
我希望能够知道
这里 还希望大家一起讨论下关于倒文输出的其他思路 方便交流 ~谢谢
1

评分人数

    • 112: 谢谢大佬!技术 + 1
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~


知道了原来是为了逃避特殊字符的干扰
写得很好 很佩服 不知像我那种写法如何进行提高 还要研究一下
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

  1. @echo off
  2. setlocal
  3. setlocal EnableDelayedExpansion
  4. set /p input=请输入:
  5. if "!input!"=="" %0
  6. :aaa
  7. set /a n+=1
  8. set /p = !input:~-%n%,1!<nul
  9. rem 等号不能放在第一位,所以一定要加空格和
  10. if not "!input:~0,%n%!"=="!input!" goto aaa
  11. endlocal&&pause>nul
  12. cls&&%0
复制代码

[ 本帖最后由 yslyxqysl 于 2008-10-5 15:08 编辑 ]
1

评分人数

TOP

  1. @echo off
  2. set /p input=请输入:
  3. :aaa
  4. set /p = %input:~-1,1%<NUL
  5. set input=%input:~0,-1%
  6. if defined input goto aaa
  7. pause>nul
复制代码

TOP

sed版:
  1. @echo off
  2. set /p str=请输入要倒序的字符:
  3. set /p=倒序后:<nul
  4. echo %str%|sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//"
  5. pause>nul
复制代码
***共同提高***

TOP

最好能在装换成MD5

TOP

回复 6楼 的帖子

倒文和md5有什么关系,“最好”二字从何谈起?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

来个vbs吧

太幸运了,vbs有这个函数StrReverse
  1. 'WScript.Echo StrReverse("bbs.bathome.net")
  2. inputbox "倒文","结果",StrReverse(inputbox("请输入字符串",,"bbs.bathome.net"))
复制代码
回复 6楼 的帖子
要表达不同的话题请重新开贴!
MD5值计算工具:http://www.bathome.net/viewthread.php?tid=2142
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

FOR 发表于 2008-10-6 03:13



    @rem 有 bug: 不能输入数字

TOP

返回列表