Board logo

标题: [讨论]倒着输出字符 [打印本页]

作者: joyn     时间: 2008-5-6 19:38    标题: [讨论]倒着输出字符

@echo off
color 0a
title 对输入的String倒着输出
set Output=
set /p str=请输入字符:
:loop
if not "%str%"=="" (
set Output=%Output%%str:~-1%
set str=%str:~0,-1%
goto :loop)
echo.        %Output%
pause >nul&exit
作者: HAT     时间: 2008-5-6 20:20
对于特殊字符,楼主准备如何处理:
>
<
^
"
&
)
作者: knoppix7     时间: 2008-5-6 20:53
以前有了.
作者: joyn     时间: 2008-5-6 23:21
对于这个没有考虑到~~不过我会想办法的
作者: HAT     时间: 2008-5-6 23:23
正如3楼所说,本版有解决方案^_^
作者: joyn     时间: 2008-5-7 01:01
哦~~可以发给我看看吗~我这几天才玩的DOS~~一不小心就来到这里了~~看到这里还不错一不小心就注册了个会员~~可转个URL来这里卜??小弟先谢谢了
作者: HAT     时间: 2008-5-7 23:14    标题: 这个帖子里应该有对特殊字符的处理,仔细研究下吧^_^

最大限度原样输出含特殊字符的指定行内容
http://www.cn-dos.net/forum/viewthread.php?tid=30815&fpage=5
作者: joyn     时间: 2008-5-7 23:19
谢谢楼上的同志~~莪去研习研习
作者: plp626     时间: 2008-5-7 23:47
小函数一个----反序输出(完全封装)
我推广下函数思想,只是玩玩而已,不喜欢的作罢:
@echo off
call:ReversOut "12345&6" strs
::这种方法兼容特殊字符
set/p "tt=%strs%"<nul

echo\&pause
exit

:: /*-------ReversOut--------------
:ReversOut ["string"] [string]
setlocal ENABLEEXTENSIONS
set "str=%~1"
:ReversOut_1
set "strs=%str:~0,1%%strs%"
set "str=%str:~1%"
if defined str goto:ReversOut_1
endlocal&set "%2=%strs%"&goto:eof
:: ---------ReversOut------------*/

作者: 26933062     时间: 2008-5-8 01:38
不能处理引号
作者: plp626     时间: 2008-5-8 15:46


  Quote:
Originally posted by 26933062 at 2008-5-8 01:38 AM:
不能处理引号

嗯,
我知道VBS 有个什么函数可以。。。论坛里有人好像发过。。。
作者: plp626     时间: 2008-5-11 06:52

@echo off

call:ReversOut "1234&56" strs
::这种方法兼容特殊字符,但会过滤引号。
set/p "tt=%strs%"<nul
echo\&pause


::子过程用for会对!过来,用goto+call,set可以不过滤但速度慢了。
:: /*-------ReversOut--------------
:ReversOut ["string"] [string]
setlocal enabledelayedexpansion
set "str=%~1"&set "s="
for /l %%a in (200 -1 0)do if not "!str:~%%a,1!"=="" set s=!s!!str:~%%a,1!
endlocal&set "%2=%s%"&goto:eof
:: ---------ReversOut------------*/

@echo off

call:ReversOut "12345&6" strs
::这种方法兼容特殊字符,但会过滤引号。
set/p "tt=%strs%"<nul

:: /*-------ReversOut--------------
:ReversOu ["string"] [string]
setlocal ENABLEEXTENSIONS
set "str=%~1"
:ReversOut_1
set "strs=%str:~0,1%%strs%"
set "str=%str:~1%"
if defined str goto:ReversOut_1
endlocal&set "%2=%strs%"&goto:eof
:: ---------ReversOut------------*/
关键字:反序 倒着 输出字符 函数

plp626发表

作者: joyn     时间: 2008-5-12 15:37
我想提个方案:就是在每个输入字符之前加一个"^"字符
这样应该可以输出所有字符,但是问题就在如何在输入的字符前加这个^(取消转义字符的符号)