[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 jinzeyu 于 2012-2-20 14:59 编辑

已全部完成
第四题有点没听明白
第四题我是random后订一个范围
(如:random20000后 因为20000大于2012 范围就变成0~19999 下次取值在这个范围里)
这样random次数就能最少
(没想到 规则我蒙对了...)

Q1:
欲取其他数,请改变a的值2012
  1. @echo off&set b=&set a=2012
  2. :1
  3. if "%a%"=="" goto 2
  4. echo %a:~0,1%
  5. set "b=%b%%a:~0,1% "&set "a=%a:~1%"
  6. goto 1
  7. :2
  8. echo 结果是:%b%&pause>nul
复制代码
欲取其他数,请改变a的值2012
  1. @echo off&setlocal EnableDelayedExpansion
  2. set a=2012
  3. :1
  4. If defined a (
  5.   set "c=%c%%a:~-1%"
  6.   set "a=%a:~,-1%"
  7.   goto 1
  8. )
  9. echo %c%&pause
复制代码
Q2:
欲取其他数,请改变a的值2012
  1. @echo off&setlocal EnableDelayedExpansion&set b=&set a=2012&set c=0
  2. :1
  3. if "%a%"=="" goto 2
  4. set "b=%b%%a:~0,1% "&set "a=%a:~1%"
  5. goto 1
  6. :2
  7. for %%i in (%b%) do set /a c+=%%i
  8. echo !c!&pause
复制代码
Q3:
欲取其他数,请改变第三行的2012
  1. @echo off&set a=0
  2. :1
  3. if not "%random%"=="2012" (set /a a+=1&goto 1) else echo 运行了%a%次 random=2012&pause
复制代码
Q4:
如果想取0~2012的值(像lz说的 就把下面的32767改成2012)
欲取其他数,请改变7 8 9行的2012
  1. @echo off&setlocal enabledelayedexpansion&set /a c=1,zs=0,zd=32767
  2. set "tab=        "
  3. ::请把以上的tab换成实际的制表符 为了显示好看点
  4. :1
  5. set /a a=%random%%%((zd+1)-zs)+zs
  6. set "ml=echo !c!次%tab%%a%%tab%最多%zd%%tab%最少%zs%"
  7. if %a% lss 2012 set /a zs=%a%+1&%ml%&set /a c+=1
  8. if %a% gtr 2012 set /a zd=%a%-1&%ml%&set /a c+=1
  9. if %a% equ 2012 (%ml%&pause>nul&exit)
  10. goto 1
复制代码
Q5:
欲取其他数,请改变第一行的2012
  1. @set /a "yp=!(2012%%4)&!(!(2012%%100))|!(2012%%400)"
  2. @if "%yp%"=="1" (@echo 闰年) else (@echo 平年)
  3. @pause
复制代码
Q6:
欲取其他数,请改变year的值2012
  1. @echo off&setlocal EnableDelayedExpansion&set n=0&set year=2012&set /a "yp=^!(year%%4)&^!(^!(year%%100))|^!(year%%400)+28"
  2. for %%a in (31 !yp! 31 30 31 30 31 31 30 31 30 31) do (set /a n+=1&for /l %%i in (1,1,%%a) do echo %year%年!n!月%%i日)
  3. pause
复制代码
Q7:
欲取其他数,请改变第一行的2012 0
  1. @for %%i in (xls doc txt pdf gpg) do ((@echo 2012 0)>2012.%%i)
复制代码
Q8:
欲取其他数,请改变a的值2012
  1. @echo off&setlocal enabledelayedexpansion&set a=2012
  2. for %%i in (零0 一1 二2 三3 四4 五5 六6 七7 八8 九9) do (set b=%%i&call:1 !b:~1! !b:~0,1!)
  3. echo !a! &pause&exit
  4. :1
  5. set a=!a:%1=%2!
复制代码
Q9:
欲取其他数,请改变23 29行的2012
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 正在初始化中....
  3. for /l %%a in (1,1,9) do (
  4.   set n%%a00=%%a百
  5.   set n%%a000=%%a千
  6.   set n%%a=%%a
  7.   if not "%%a"=="1" set i=%%a
  8.   set n%%a0=!i!十
  9.   for /l %%b in (1,1,9) do (
  10.     set n%%a%%b0=%%a百%%b十
  11.     set n%%a%%b00=%%a千%%b百
  12.         set n%%a%%b=!i!十%%b
  13.     for /l %%c in (1,1,9) do (
  14.       set n%%a%%b%%c=%%a百%%b十%%c
  15.       set n%%a0%%c=%%a百零%%c
  16.       set n%%a%%b%%c0=%%a千%%b百%%c十
  17.       set n%%a0%%c0=%%a千零%%c十
  18.       for /l %%d in (1,1,9) do (
  19.         set n%%a00%%d=%%a千零%%d
  20.         set n%%a0%%c%%d=%%a千零%%c十%%d
  21.         set n%%a%%b0%%d=%%a千%%b百零%%d
  22.         set n%%a%%b%%c%%d=%%a千%%b百%%c十%%d
  23.         if "%%a%%b%%c%%d"=="2012" call:end
  24.       )
  25.     )
  26.   )
  27. )
  28. :end
  29. for /l %%a in (1,1,2012) do (
  30.   set a=!n%%a!
  31.   for %%i in (一1 二2 三3 四4 五5 六6 七7 八8 九9 零0) do (
  32.     set b=%%i
  33.     call:1 !b:~1! !b:~0,1!
  34.   )
  35.   echo !a!
  36. )
  37. pause>nul
  38. :1
  39. set a=!a:%1=%2!
复制代码
下面这个比上面这个快得多(不算初始化...)可能是call的原因
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 正在初始化中....
  3. for /l %%a in (1,1,9) do (
  4.   set n%%a00=%%a百
  5.   set n%%a000=%%a千
  6.   set n%%a=%%a
  7.   if not "%%a"=="1" set i=%%a
  8.   set n%%a0=!i!十
  9.   for /l %%b in (1,1,9) do (
  10.     set n%%a%%b0=%%a百%%b十
  11.     set n%%a%%b00=%%a千%%b百
  12.         set n%%a%%b=!i!十%%b
  13.     for /l %%c in (1,1,9) do (
  14.       set n%%a%%b%%c=%%a百%%b十%%c
  15.       set n%%a0%%c=%%a百零%%c
  16.       set n%%a%%b%%c0=%%a千%%b百%%c十
  17.       set n%%a0%%c0=%%a千零%%c十
  18.       for /l %%d in (1,1,9) do (
  19.         set n%%a00%%d=%%a千零%%d
  20.         set n%%a0%%c%%d=%%a千零%%c十%%d
  21.         set n%%a%%b0%%d=%%a千%%b百零%%d
  22.         set n%%a%%b%%c%%d=%%a千%%b百%%c十%%d
  23.         if "%%a%%b%%c%%d"=="2012" call:end
  24.       )
  25.     )
  26.   )
  27. )
  28. :end
  29. set c=0
  30. :2
  31. set /a c+=1
  32. set a=!n%c%!
  33. set a=!a:1=一!
  34. set a=!a:2=二!
  35. set a=!a:3=三!
  36. set a=!a:4=四!
  37. set a=!a:5=五!
  38. set a=!a:6=六!
  39. set a=!a:7=七!
  40. set a=!a:8=八!
  41. set a=!a:9=九!
  42. set a=!a:0=零!
  43. echo !a!
  44. if not "%c%"=="2012" goto 2
  45. pause>nul
复制代码
Q10:
  1. @echo off
  2. call:2 "2012 年 祝 大 家 :"
  3. call:2 "心 想 事 成"
  4. call:2 "万 事 如 意"
  5. call:2 "最 后 祝 大 家"
  6. call:2 "在 2012 年 12 月 22 日 能 存 活 下 来 . . . . . ."
  7. set x=0
  8. set color=0123456789abcdef
  9. :3
  10. set /a x+=1
  11. set /a ra=%random%%%16
  12. cmd /v:on /c color !color:~%ra%,1!
  13. if "%x%"=="70" exit
  14. goto 3
  15. :2
  16. set "b=%~1"
  17. for %%i in (%b%) do (
  18.   set /p "a=%%i"<nul
  19.   for /l %%x in (1,1,1000) do ver>nul
  20. )
  21. echo.
复制代码
1

评分人数

    • batman: 请注意代码效率。。。PB + 60

TOP

回复 12# batman


    有11道题 2个3题...

TOP

回复 14# batman
第四题能解释一下吗

TOP

我7天前做完了 管理员能否帮忙看一看

TOP

回复 11# batman


    呵呵 第九题慢了点...

TOP

返回列表