标题: [文本处理] 这段随机数批处理代码为什么不行? [打印本页]
作者: 502283644 时间: 2014-9-13 11:07 标题: 这段随机数批处理代码为什么不行?
- @echo off
- setlocal enabledelayedexpansion
- set /p a=
- set /a b=%random%%%100+10
- set /a c=%a%*%b%
- echo %a%*%b%=%c%
- pause
- echo %b%>1.txt
- echo %c%>2.txt
- set /p dv=
- for /f %%i in (2.txt) do (
- for /f %%n in (1.txt) do (
- set /a d=!dv!*%%n
- if "!d!"="%%i" goto 1
- echo 错误
- pause
- )
- )
- :1
- echo 成功
- 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 不是 = 还有 错误分支的跳转要截断, 不要让它顺序流转到正确的分支- @echo off
- setlocal enabledelayedexpansion
- set /p a=
- set /a b=%random%%%100+10
- set /a c=a*b
- echo %a%*%b%=%c%
- pause
- echo %b%>1.txt
- echo %c%>2.txt
- set /p dv=
- for /f %%i in (2.txt) do (
- for /f %%n in (1.txt) do (
- set /a d=dv*%%n
- if "!d!"=="%%i" goto 1
- echo 错误
- pause
- goto :eof
- )
- )
- :1
- echo 成功
- pause
复制代码
作者: 502283644 时间: 2014-9-13 13:26
回复 5# neorobin
是啊
作者: 502283644 时间: 2014-9-13 13:31
- @echo off
- setlocal enabledelayedexpansion
- set /p a=
- set /a b=%random%%%100+10
- set /a c=a*b
- echo %a%*%b%=%c%
- pause
- echo %b%>1.txt
- echo %c%>2.txt
- set /p dv=
- for /f %%i in (2.txt) do (
- for /f %%n in (1.txt) do (
- set /a d=dv*%%n
- if "!d!"=="%%i" goto 1
- echo 错误
- pause
- exit
- )
- )
- :1
- echo 成功
- pause
- rem 可以吗?
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |