中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 12:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]倒着输出字符 查看 879 回复 12
楼 主 [讨论]倒着输出字符 发表于 2008-05-06 19:38 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
@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
2 发表于 2008-05-06 20:20 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
对于特殊字符,楼主准备如何处理:
>
<
^
"
&
)
3 发表于 2008-05-06 20:53 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
以前有了.
4 发表于 2008-05-06 23:21 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
对于这个没有考虑到~~不过我会想办法的
5 发表于 2008-05-06 23:23 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
正如3楼所说,本版有解决方案^_^
6 发表于 2008-05-07 01:01 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
哦~~可以发给我看看吗~我这几天才玩的DOS~~一不小心就来到这里了~~看到这里还不错一不小心就注册了个会员~~可转个URL来这里卜??小弟先谢谢了
7 这个帖子里应该有对特殊字符的处理,仔细研究下吧^_^ 发表于 2008-05-07 23:14 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
最大限度原样输出含特殊字符的指定行内容
http://www.cn-dos.net/forum/viewthread.php?tid=30815&fpage=5
8 发表于 2008-05-07 23:19 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
谢谢楼上的同志~~莪去研习研习
9 发表于 2008-05-07 23:47 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
小函数一个----反序输出(完全封装)
我推广下函数思想,只是玩玩而已,不喜欢的作罢:
@echo off
call:ReversOut "12345&6" strs
::这种方法兼容特殊字符
set/p "tt=%strs%"<nul

echo\&pause
exit

:: /*-------ReversOut--------------
:ReversOut
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------------*/
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
10 发表于 2008-05-08 01:38 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
不能处理引号
致精致简!
11 发表于 2008-05-08 15:46 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
Originally posted by 26933062 at 2008-5-8 01:38 AM:
不能处理引号


嗯,
我知道VBS 有个什么函数可以。。。论坛里有人好像发过。。。
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
12 发表于 2008-05-11 06:52 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
@echo off

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


::子过程用for会对!过来,用goto+call,set可以不过滤但速度慢了。
:: /*-------ReversOut--------------
:ReversOut
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
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发表
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
13 发表于 2008-05-12 15:37 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
我想提个方案:就是在每个输入字符之前加一个"^"字符
这样应该可以输出所有字符,但是问题就在如何在输入的字符前加这个^(取消转义字符的符号)
论坛跳转: