[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal EnableDelayedExpansion
  2. :_start
  3. for,/l,%%i,in,(1 1 1000),do,(set pass=!random:~-3!&echo 正在猜测密码:!pass!&cls
  4. if "!pass!"=="888" set a=%%i&echo !pass!>mima.txt&goto exit
  5. if "%%i"=="1000" set /a n=1000+n&goto _start)
  6. :exit
  7. set /a a=a+n&echo,共猜测:!a!次,密码是:!pass!&pause
复制代码
用for不是更好?

稍稍修改。。

[ 本帖最后由 canyuexiaolang 于 2010-7-30 15:44 编辑 ]
1

评分人数

    • rogue_1983: 方法独特,就是感觉挺复杂的PB + 3

TOP

楼主表灰心...
先给你纠正一下错误
1.上边的代码有2个标签a
2.没有标签quit
if的判断最好加上引号
eg:if "%vas%"=="888" Command...
然后我来解释我的代码。。
先去除一下没用的东西...整理代码
  1. @echo off&setlocal EnableDelayedExpansion
  2. rem 开启变量延迟。大家可以测试一下,如果不开启变量延迟是不可以滴...
  3. rem 开启变量延迟,要把要延迟的变量的 % 变成 !
  4. :_start
  5. for /l %%i in (1 1 1000) do (
  6. rem for循环,循环1000次
  7.      set pass=!random:~-3!
  8.      echo 正在猜测密码:!pass!&cls
  9. rem 生成随机数,截取最后3位。
  10.      if "!pass!"=="888" set a=%%i&echo !pass!>mima.txt&goto exit
  11. rem IF判断pass变量的值是否为888,如果为888则把%%i的值赋给a,
  12. rem 把pass写入mima.txt然后跳转到exit,否则继续执行程序
  13.      if "%%i"=="1000" set /a n=1000+n&goto _start
  14. rem IF判断%%i是否为1000,如果是1000,则把%%i的值赋给n。
  15. rem 则n的值就为1000,2000,3000...然后在跳转到_start
  16. )
  17. :exit
  18. set /a a=a+n
  19. echo 共猜测:!a!次,密码是:!pass!
  20. pause
  21. rem 把n+a的值赋给a,a是1000次循环循环完毕的次数,它是小于等于1000的,
  22. rem 而n的值是总共循环了n次,再把n*1000
复制代码
1

评分人数

TOP

返回列表