标题: [求助]如何生成文本的反序!
[打印本页]
作者: boiu
时间: 2006-10-6 10:42
标题: [求助]如何生成文本的反序!
如题
比如 “123” 生成 “321”
要求: 自动转换并生成目标文本。路径可以在系统盘符下!
谢谢!
作者: 3742668
时间: 2006-10-6 11:48
@echo off
set str=
set var=
call :sort "123456789"
echo %ret%
call :sort "abcdefg"
echo %ret%
pause
goto :eof
:sort
set "str=%~1"
set "var=%str:~0,1%%var%"
set "ret=%var%"
set "flag=%str:~1%"
if defined flag call :sort "%flag%"
set str= && set var=
goto :eof
由于批处理的特性,它依然无法处理诸如"%之类的部分特殊字符。如果专门为了那几个特殊去写代码处理将会降低极大的效率。所以不建议用批处理来处理高要求的字符工作。
作者: namejm
时间: 2006-10-6 11:51
试试下面的代码:
@echo off
:: 反序列出文本的每行内容
:: 不能处理的字符:
:: 管道符号:|
:: 重定向符号:<、>
:: 连接符号:&
:: 脱字符号:^
:: 其他符号:?、*、)、"
for /f "delims=" %%i in (test.txt) do (
set str=%%i
set var=
call :intercept
)
start test_.txt
goto :eof
:intercept
if not "%str%"=="" (
set var=%str:~0,1%%var%
set str=%str:~1%
goto intercept
) else (
>> test_.txt echo %var%
)
goto :eof
呵呵,发完这个帖子才发现3742668已经抢先一步。defined的用法比较新鲜。
后来发现不用在字符串的结尾设置结束符号,修改之后的代码能处理更多的字符。
[
Last edited by namejm on 2006-10-8 at 09:57 ]
作者: boiu
时间: 2006-10-6 21:19
谢谢 楼上2位
祝各位中秋节好!
作者: wydos
时间: 2006-10-7 04:01
太不可思议了,不过不知道代码的具体含义,先收了!!!
作者: vkill
时间: 2006-10-7 07:36
namejm 兄的容易看懂点
作者: electronixtar
时间: 2006-10-8 05:30
bat+vbs
@echo off
echo WScript.echo StrReverse(WScript.Arguments(0)) >$tmp.vbs
cscript //noLogo $tmp.vbs %1
del $tmp.vbs
[
Last edited by electronixtar on 2006-10-8 at 05:34 ]
作者: amao
时间: 2007-2-2 19:07
sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//" test.txt
作者: jmz573515
时间: 2007-2-3 01:53
WScript.echo StrReverse(WScript.Arguments(0))
作者: guxingyibei
时间: 2007-5-7 13:27
标题: 这个也行吧!就是低级点
@echo off&setlocal enabledelayedexpansion
for /l %%c in (9,-1,0) do (
set /a var=1234567890
set/p=!var:~%%c,1!<nul>>1.txt
)
这个是我这个菜鸟写的,上面几位大哥的看的不是太懂!以后多多学习
作者: lxmxn
时间: 2007-5-7 17:26
标题: 用gawk试试
本人的gawk是GNU awk 3.1.5版本的。
echo abcdefg|gawk "BEGIN{FS=\"\"}{for(i=NF;i>0;i--)printf($i)}"
作者: slore
时间: 2007-5-8 14:10
VBS一个函数就搞定了。