[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
測試了很久....還要多加努力
  1. @echo off&setlocal enabledelayedexpansion
  2. :lp
  3. for /l %%i in (1 1 9) do set .!random!!random!=%%i
  4. for /f "tokens=1-2 delims==" %%i in ('set .') do (
  5. set /a n+=1,m=n%%4
  6. set "var=!var!%%j"
  7. if !m! equ 0 if not defined #!var:~-4! (
  8. echo !var:~-4!
  9. set /a "num+=1"
  10. set "#!var:~-4!=flag")
  11. if "!num!" equ "100" pause&exit
  12. set "%%i=")
  13. set "var="&set "n="
  14. goto lp
复制代码
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

TOP

  1. @echo off
  2. :main
  3. set /a n=%random%%%10
  4. if %n%==0  goto main
  5. :y
  6. set /a m=%random%%%10
  7. if %m%==%n% (goto y) else (set /a b=10*m+n)
  8. :second
  9. set /a x=%random%%%10
  10. if %x%==%n% (goto second)
  11. if %x%==%m% (goto second) else (set /a b=100*x+b)
  12. :third
  13. set /a w=%random%%%10
  14. if %w%==0 (goto third)
  15. if %w%==%n% (goto third)
  16. if %w%==%m% (goto third)
  17. if %w%==%x% (goto third) else (set /a b=1000*w+b)
  18. echo %b%
  19. pause>nul
复制代码

TOP

回复 47# 楚牛香


    不知道有没有符号,可以实现或的意思,比如 如果m不等于x或者w的话,这句话有代码能写吗

TOP

本帖最后由 shelluserwlb 于 2014-11-9 15:58 编辑
  1. @echo off
  2. :again
  3. set /a h1=%random%%%9+1
  4. set /a h2=%random%%%9
  5. set /a h3=%random%%%9
  6. set /a h4=%random%%%9
  7. if %h1% neq %h2% (
  8. if %h1% neq %h3% (
  9. if %h1% neq %h4% (
  10. if %h2% neq %h3% (
  11. if %h2% neq %h4% (
  12. if %h3% neq %h4% (
  13.     echo %h1%%h2%%h3%%h4%
  14.     pause>nul
  15. ))))))
  16. goto :again
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /a shuzi=%random%%%1000+1
  3. set /a shuzi1=%shuzi%*4-4
  4. for /l %%a in (1,1,9) do (
  5.     for /l %%b in (0,1,9) do (
  6.         for /l %%c in (0,1,9) do (
  7.             for /l %%d in (0,1,9) do (
  8.                 if not %%a==%%b if not %%a==%%c if not %%a==%%d if not %%b==%%c if not %%b==%%d if not %%c==%
  9. %d (
  10.    if not defined #%%a%%b%%c%%d (set /a n+=1&set #%%a%%b%%c%%d=1)
  11.    if !n! geq !shuzi1! echo;%%a%%b%%c%%d&set /a t+=1
  12.    if !t!==4 goto a
  13.    )
  14.       )
  15.     )
  16.   )
  17. )
  18. :a
  19. pause>nul
复制代码
这也算随机数了,就是值范围差不多,得改随机数。

TOP

  1. @echo off
  2. set d=0
  3. setlocal enabledelayedexpansion
  4. :lc
  5. set/a a=%random%%%9000+1000
  6. set p=n!a!
  7. for /l %%a in (0,1,9) do (set q=!p:%%a=!
  8. if !q! neq !p! (if "!q:~3,1!"=="" (goto lc)
  9. )
  10. )
  11. set/a d+=1
  12. echo;!a!
  13. if %d% equ 4 (pause&exit)
  14. goto lc
复制代码
生成4个

TOP

回复 1# youxi01
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%I in (1,1,4) do (
  4.     call :CreateRandom
  5.     echo !createRandom!
  6. )
  7. goto :EOF
  8. :CreateRandom
  9. set createRandom=%RANDOM%
  10. if %createRandom% LEQ 999 (
  11.     goto :CreateRandom
  12. ) else if %createRandom% LSS 10000 (
  13.     call :IsFourSame %createRandom%
  14.     if !isFourSame! EQU 0 (
  15.         exit /b
  16.     ) else (
  17.         goto :CreateRandom
  18.     )
  19. ) else (
  20.     goto :CreateRandom
  21. )
  22. :IsFourSame
  23. set value=%1
  24. set ch1=%value:~,1%
  25. set ch2=%value:~1,1%
  26. if %ch1% EQU %ch2% set isFourSame=1 & exit /b
  27. set ch3=%value:~2,1%
  28. if %ch3% EQU %ch1% set isFourSame=1 & exit /b
  29. if %ch3% EQU %ch2% set isFourSame=1 & exit /b
  30. set ch4=%value:~3,1%
  31. if %ch4% EQU %ch1% set isFourSame=1 & exit /b
  32. if %ch4% EQU %ch2% set isFourSame=1 & exit /b
  33. if %ch4% EQU %ch3% set isFourSame=1 & exit /b
  34. set isFourSame=0
  35. exit /b
复制代码

TOP

  1. @echo off
  2. ::设置四个变量a,b,c,d,产生四个1位的随机数组全四位数
  3. :sui1
  4. set /a i=%random% %% 10
  5. if %i% neq 0 (set /a a=%i%)  else goto sui1
  6. :sui2
  7. set /a i=%random% %% 10
  8. if %i% neq %a% (set /a b=%i%)  else goto sui2
  9. :sui3
  10. set /a i=%random% %% 10
  11. if %i% neq %a% if %i% neq %b% (set /a c=%i%)   else goto sui3
  12. :sui4
  13. set /a i=%random% %% 10
  14. if %i% neq %a% if %i% neq %b% if %i% neq %c% (set /a d=%i%)  else goto sui4
  15. echo %a%%b%%c%%d%
  16. pause >nul
复制代码

TOP

对53楼做下改进
  1. @echo off
  2. ::设置四个变量a,b,c,d,产生四个1位的随机数组全四位数
  3. set /a i=%random% %% 9+1
  4. set a=%i%
  5. :sui2
  6. set /a i=%random% %% 10
  7. if %i% neq %a% (set /a b=%i%)  else goto sui2
  8. :sui3
  9. set /a i=%random% %% 10
  10. if %i% neq %a% if %i% neq %b% (set /a c=%i%)   else goto sui3
  11. :sui4
  12. set /a i=%random% %% 10
  13. if %i% neq %a% if %i% neq %b% if %i% neq %c% (set /a d=%i%)  else goto sui4
  14. echo %a%%b%%c%%d%
  15. pause >nul
复制代码

TOP

返回列表