老土想得太多了
只有针对具体问题的解题代码
才需要考虑应用中的很多问题
比如异常处理、界面优化、缺省值等等
而现在讨论的只是一些原型化的代码
根本谈不上如何去应用
只需要抽象出问题的核心然后解决掉它就可以了
只有针对具体问题的解题代码
才需要考虑应用中的很多问题
比如异常处理、界面优化、缺省值等等
而现在讨论的只是一些原型化的代码
根本谈不上如何去应用
只需要抽象出问题的核心然后解决掉它就可以了
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off&setlocal enabledelayedexpansion
set/p p=请输入:
set str=27j834fi56a901bghcde
set st=!str!&set pt=!p!
:lp
set ..!p:~%n%,1!=ok&set/a n+=1
set .!str:~,1!=!str:~-1,1!
set str=!str:~1,-1!
if defined str goto lp
:lp1
if defined ..%st:~,1% (set var1=!var1!%st:~,1%&set var2=!.%st:~,1%!!var2!)else (
if defined ..!.%st:~,1%! (set var1=!var1!%st:~,1%&set var2=!.%st:~,1%!!var2!)else set var1=!var1!#&set var2=#!var2!)
set st=!st:~1,-1!&set pt=!pt:~1!
if defined st goto lp1
echo !var1! ^| !var2!
pause
| 评分人 | 分数 | 时间 |
|---|---|---|
| bat-zw | +9 | 2008-07-13 09:34 |
Originally posted by quya at 2008-7-13 09:53:
还是要挑点毛病。
其他的我看不懂, 就这句 set str=27j834fi56a901bghcde
好像还是不太通用啊。
同志们,请原谅我,我水平不行,挑刺还可以。
Originally posted by zw19750516 at 2008-7-13 10:14 AM:
老土,这个set是根据情况来的,如要对称的是数字和字母,就set str=数字+字母,如要对称的是数字和汉字,就set str=数字+汉字,如要对称关系是没有规律的,就如terse兄如此set了。
@echo off
set/p input=请输入:
set "string=012t457689aycd0fghi3"
set num=
:pro1
set /a num+=1
set strtmp=%string:~0,1%%string:~-1%
set str%num%=##
rem 下面这句是 findstr 类方面的应用
echo %input%|findstr >nul&&set str%num%=%strtmp%
set string=%string:~1,-1%
if not defined string goto pro2
goto pro1
:pro2
setlocal enabledelayedexpansion
set str_1=x
for /l %%i in (1,1,%num%) do call set str_1=!str_1:~0,-1!%%str%%i%%
for /l %%i in (1,1,%num%) do call set str_2=%%str%%i%%!str_2:~1!
echo %str_1:~,-1% ^| %str_2:~1,-2%
pause
@echo off
set code=0123456789abcdefghijklmnopqrstuvwxyz&set n=36
:again
set /a a=%random%%%n%
call,set a=%%code:~%a%,1%%
call,set code=%%code:%a%=%%
set str=%str%%a%&set /a n-=1
if %n% neq 16 goto again
echo %str%&pause>nul
Originally posted by 26933062 at 2008-7-13 11:13 AM:
呵呵,老土还真是执著啊,
你试试 38 楼的代码,
已经对人机交互作了处理,可以不输入空格,也可以输入。
缺点是: 任意字符中不能有重复的。
Originally posted by quya at 2008-7-13 11:32:
试了下 当 set "str=012t456789abcd6fghi3"
输入36 不能正确显示。
而我37楼代码完全准确, 总算胜了众高手一回。
只是感到自己还不算太笨 ...
@echo off
set/p input=请输入:
set string=0123456789abcdefghij
set "str= "
:loop
set str=%string:~-1%%str%%string:~0,1%
echo %input%|findstr >nul||set str=#%str:~1,-1%%#
set string=%string:~1,-1%
if not defined string goto end
goto loop
:end
for /f "tokens=1,2 delims= " %%i in ("%str%") do echo %%j ^| %%i
pausesetlocal EnableDelayedExpansion
set string=0123456789abcdefghij
for /l %%i in (1,1,10) do (
set string=!string:~1,-1!
echo !string!
if not defined string goto end)