联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off :l set rn=%random:~0,1% set rr=%random:~0,2% if %rn% geq 6 ( if %rn% leq 9 (set n=1&echo %rn%&pause&exit /b) ) if %rr% geq 10 ( if %rr% leq 17 (set m=1&echo %rr%&pause&exit/b) ) if not defined m goto :l ) pause
@echo off set max=17 set min=6 set /a "a=%random%%%(%max%-%min%+1)+%min%" echo %a% pause
@echo off setlocal EnableDelayedExpansion set "str=6 7 8 9 10 11 12 14 15 16 17" set min=m set max=0 for %%n in (%str%) do ( if %%n lss !min! set min=%%n if %%n gtr !max! set max=%%n ) :loop cls set /a n=%random%%%(%max%-%min%+1)+%min% for %%n in (%str%) do if %n% == %%n goto end goto loop :end echo %n% pause goto loop
@echo off :l set rn=%random:~0,1% set rr=%random:~0,2% if %rn% geq 6 ( if %rn% leq 9 (echo %rn%&pause&exit /b) ) if %rr% geq 10 ( if %rr% neq 13 ( if %rr% leq 17 (set m=1&echo %rr%&pause&exit/b) ) ) if not defined m goto :l ) pause
@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in (%string%) do call set /a "n=%%n%%+1" set /a "tn=(%random%)%%(%n%)+1" call :GET %tn% pause goto :EOF :GET for /f "usebackq tokens=%1 delims== " %%i in ('%string%') do echo %%i goto :EOF
Originally posted by dikex at 2007-11-29 01:29: 没看清楚,看到前面自然就以为是连续的,呵呵 写了另一个利用for的tokens参数的:@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in ...
@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in ...
@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in (%string%) do set /a n+=1 set /a "n=%random%%%%n%+1" for /f "usebackq tokens=%n% delims= " %%i in ('%string%') do echo %%i pause goto :EOF
@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%a in (%string%) do call set _%%random%%=%%a for /f "tokens=2 delims==" %%a in ('set _^|sort') do set var=%%a echo %var% pause
Originally posted by zh159 at 2007-11-29 02:46 AM: 简化: [code]@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in (%string%) do set /a n+=1 set /a "n=%random%%%%n%+1" for /f "usebackq tokens=%n% delim ...
Originally posted by khansky at 2007-11-29 15:22: 谢谢各位兄弟的帮忙。现在运行这些脚本有以下几点看法:1)。4楼的结果虽然是对的,但要一直循环。我的目的是随机给一个变量赋值为上面数值之 ...
Originally posted by dikex at 2007-11-29 12:45: 比较喜欢用call,这样看起来比较清楚,而且容易扩展;而%random%%%%n%这里加上两个括号也能让代码更清楚,一定程度上防止一些奇怪的错误发生:)
系统找不到文件 D Cΐΐ。
for %%i in (%string%) do call set /a "n=%%n%%+1" set /a "tn=(%random%)%%(%n%)+1"
for %%i in (%string%) do set /a n+=1 set /a "tn=%random% %% %n%+1"
@echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in (%string%) do set /a n+=1 set /a "n=%random% %% %n%+1" for /f "tokens=%n% delims= " %%i in ("%string%") do echo %%i pause exit
Originally posted by zh159 at 2007-11-29 04:06 PM: 不知道为什么,我执行后会出现: 将for %%i in (%string%) do call set /a "n=%%n%%+1" set /a "tn=(%random%)%%(%n%)+1"改为 [code]for %%i i ...