
CODE: [Copy to clipboard]由于批处理的特性,它依然无法处理诸如"%之类的部分特殊字符。如果专门为了那几个特殊去写代码处理将会降低极大的效率。所以不建议用批处理来处理高要求的字符工作。@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
CODE: [Copy to clipboard]呵呵,发完这个帖子才发现3742668已经抢先一步。defined的用法比较新鲜。@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
CODE: [Copy to clipboard][ Last edited by electronixtar on 2006-10-8 at 05:34 ]@echo off
echo WScript.echo StrReverse(WScript.Arguments(0)) >$tmp.vbs
cscript //noLogo $tmp.vbs %1
del $tmp.vbs
CODE: [Copy to clipboard]echo abcdefg|gawk "BEGIN{FS=\"\"}{for(i=NF;i>0;i--)printf($i)}"
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) | Powered by Discuz! 2.5 |