标题: [文本处理] 批处理实现字符串反转倒序输出 [打印本页]
作者: 基拉freedom 时间: 2008-10-5 13:49 标题: 批处理实现字符串反转倒序输出
这是JM的- @echo off
- :: 反序显示输入,能处理 数字+字母(区分大小写)+符号 格式的混合型输入
- :: 区分大小写
- :: 稍加改造,可以实现密码的枚举?
- :: 不能处理的字符:
- :: 管道符号:|
- :: 重定向符号:<、>
- :: 连接符号:&
- :: 脱字或逃逸符号:%、^
- :: 其他符号:?、*、)、=、;、"
- :: code by jm 2006-9-7 CMD@XP
- cls
- set input=
- set /p input= 请输入一个字符串
- set output=
- if not "%input%"=="" set input=%input%
- :loop
- 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 (
- (if %input:~-1% equ %%i set output=%output%%%i)&&set input=%input:~0,-1%
- )
- if not "%input%"=="" goto :loop
- echo 反序显示输入,结果是 %output%
复制代码
这是 也不知道哪里弄来的- @echo off
- :star
- set Output=
- set /p Enter=请输入:
- :Start
- if not "%Enter%"=="" (
- set Output=%Output%%Enter:~-1%
- set Enter=%Enter:~0,-1%
- goto :Start)
- echo.
- echo %Output%
- pause >nul&goto :Star
复制代码
还有一个是我无聊写写的- @echo off
- setlocal EnableDelayedExpansion
- set /p input=
- set n=1
- set "num=%input%"
- :begin
- set num1=!num:~-%n%,1!
- if "!num1!"=="" goto out
- set "src=!src!!num1!"
- set /a n=!n!+1
- goto begin
- :out
- echo !src!
- pause
复制代码
写这个有很多种的想法
JM版主写得是用for来查找相同的字符并对其赋值
我写的和第二个一样 只是单纯的对字符进行传输
对于非法字符也通过了
其实我很想知道为什么JM版主要用上这样的写法 和 这种写法有什么好处吗?
我希望能够知道
这里 还希望大家一起讨论下关于倒文输出的其他思路 方便交流 ~谢谢
作者: 基拉freedom 时间: 2008-10-5 13:52
恩
知道了原来是为了逃避特殊字符的干扰
写得很好 很佩服 不知像我那种写法如何进行提高 还要研究一下
作者: yslyxqysl 时间: 2008-10-5 14:24
- @echo off
- setlocal
- setlocal EnableDelayedExpansion
- set /p input=请输入:
- if "!input!"=="" %0
- :aaa
- set /a n+=1
- set /p = !input:~-%n%,1!<nul
- rem 等号不能放在第一位,所以一定要加空格和
- if not "!input:~0,%n%!"=="!input!" goto aaa
- endlocal&&pause>nul
- cls&&%0
复制代码
[ 本帖最后由 yslyxqysl 于 2008-10-5 15:08 编辑 ]
作者: FOR 时间: 2008-10-6 03:13
- @echo off
- set /p input=请输入:
- :aaa
- set /p = %input:~-1,1%<NUL
- set input=%input:~0,-1%
- if defined input goto aaa
- pause>nul
复制代码
作者: batman 时间: 2008-10-6 11:29
sed版:- @echo off
- set /p str=请输入要倒序的字符:
- set /p=倒序后:<nul
- echo %str%|sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//"
- pause>nul
复制代码
作者: phandsome 时间: 2008-10-15 19:57
最好能在装换成MD5
作者: Batcher 时间: 2008-10-15 20:09 标题: 回复 6楼 的帖子
倒文和md5有什么关系,“最好”二字从何谈起?
作者: zqz0012005 时间: 2008-10-16 00:11 标题: 来个vbs吧
太幸运了,vbs有这个函数StrReverse- 'WScript.Echo StrReverse("bbs.bathome.net")
- inputbox "倒文","结果",StrReverse(inputbox("请输入字符串",,"bbs.bathome.net"))
复制代码
回复 6楼 的帖子
要表达不同的话题请重新开贴!
MD5值计算工具:http://www.bathome.net/viewthread.php?tid=2142
作者: tiandyoin 时间: 2023-2-24 18:09
FOR 发表于 2008-10-6 03:13
@rem 有 bug: 不能输入数字
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |