Board logo

标题: [文本处理] 这段随机数批处理代码为什么不行? [打印本页]

作者: 502283644    时间: 2014-9-13 11:07     标题: 这段随机数批处理代码为什么不行?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=
  4. set /a b=%random%%%100+10
  5. set /a c=%a%*%b%
  6. echo %a%*%b%=%c%
  7. pause
  8. echo %b%>1.txt
  9. echo %c%>2.txt
  10. set /p dv=
  11. for /f %%i in (2.txt) do (
  12.    for /f %%n in (1.txt) do (
  13.    set /a d=!dv!*%%n
  14.    if "!d!"="%%i" goto 1
  15.    echo 错误
  16.    pause
  17.   )
  18. )
  19. :1
  20. echo 成功
  21. pause
复制代码

作者: 502283644    时间: 2014-9-13 11:14

有人吗?有人在吗?
作者: 523066680    时间: 2014-9-13 11:45

回复 2# 502283644


    怎么不行?

    set /p dv=

    set /a d=!dv!*%%n
   
显示:找不到操作数。

dv为嘛设置为空?
作者: 502283644    时间: 2014-9-13 11:53

dv是要输入的
作者: neorobin    时间: 2014-9-13 11:56

楼主意思是把一个密码  以 c/b 这样一个分数的形式保存到 两个文件(分子 分母 各一个文件), 再来猜这个密码

如果设密码时就空的话, 直接就会报错: 找不到操作数吧
作者: neorobin    时间: 2014-9-13 12:09

仔细比较一下, 看看下面改动了哪些地方, 必要的修改是 比较相等 要用  == 或者 equ 或者 neq   不是 =   还有 错误分支的跳转要截断, 不要让它顺序流转到正确的分支
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=
  4. set /a b=%random%%%100+10
  5. set /a c=a*b
  6. echo %a%*%b%=%c%
  7. pause
  8. echo %b%>1.txt
  9. echo %c%>2.txt
  10. set /p dv=
  11. for /f %%i in (2.txt) do (
  12.    for /f %%n in (1.txt) do (
  13.    set /a d=dv*%%n
  14.    if "!d!"=="%%i" goto 1
  15.    echo 错误
  16.    pause
  17.    goto :eof
  18.   )
  19. )
  20. :1
  21. echo 成功
  22. pause
复制代码

作者: 502283644    时间: 2014-9-13 13:26

回复 5# neorobin


    是啊
作者: 502283644    时间: 2014-9-13 13:31

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=
  4. set /a b=%random%%%100+10
  5. set /a c=a*b
  6. echo %a%*%b%=%c%
  7. pause
  8. echo %b%>1.txt
  9. echo %c%>2.txt
  10. set /p dv=
  11. for /f %%i in (2.txt) do (
  12.    for /f %%n in (1.txt) do (
  13.    set /a d=dv*%%n
  14.    if "!d!"=="%%i" goto 1
  15.    echo 错误
  16.    pause
  17.    exit
  18.   )
  19. )
  20. :1
  21. echo 成功
  22. pause
  23. rem 可以吗?
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2