标题: [系统相关] set /a计算获取随机数提示无效的数字什么原因 [打印本页]
作者: 380077403 时间: 2018-3-17 07:43 标题: set /a计算获取随机数提示无效的数字什么原因
随机结果出错- @echo off
- @setlocal enabledelayedexpansion
- ::>18!m!.txt type nul
- :loop
- @set "TTL=null"
- @set /a a=%random%*1%%254+1
- @set /a b=%random:~1,10%*1%%254+1
- @set /a c=%random:~2,10%*1%%254+1
- @set /a d=%random:~3,10%*1%%254+1
- @set ip=%a%.%b%.%c%.%d%
- @ping /n 1 127.0.0.1 >nul
- for /f "tokens=3 delims==" %%i in ('ping %ip% -n 2 -l 888 ^| find "TTL"') do (
- set TTL=%%i
- )
- @if "!TTL!" equ "null" (
- goto :loop
- )
- @ping /n 1 127.0.0.1 >nul
- @set ms=!TTL:~0,-6!
- @ping /n 1 127.0.0.1 >nul
- @set /a v=%ms%%%16+1
- @set m=%date:~5,2%%date:~8,2%
- @echo %v%>> 18!m!.txt
- goto :loop
复制代码
作者: 380077403 时间: 2018-3-17 07:48
本帖最后由 380077403 于 2018-3-17 07:49 编辑
显示::
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
八进制(021)。
ECHO 处于关闭状态。
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
找不到操作数。
结果:10
14
10
11
16
16
ECHO 处于关闭状态。
10
作者: yhcfsr 时间: 2018-3-17 08:24
本帖最后由 yhcfsr 于 2018-3-17 08:30 编辑
这个问题很经典复制代码
1 发生在set /a 命令中
2 以0开头的数字,被认为是八进制,当出现八进制无法识别的数字如8或9,就会出现这个错误
当随机数字如10089,如果截取0089这样的数字参与set/a的计算,就会导致如题错误。
作者: 380077403 时间: 2018-3-17 10:25
回复 3# yhcfsr
set /a b=%random:~0,5%*1%%254+1
set /a c=%random:~0,4%*1%%254+1
我是这样做的 虽然解决了 但是以下 难道是是SHE ttl等于NULL 如果TTL等于null 返回LOOP 这个时间TTL是空的好像
:loop
set "TTL=null"
if "!TTL!" equ "null" (
goto :loop
但是以上 难道是是SHE ttl等于NULL 如果TTL等于null 返回LOOP 这个时间TTL是空的好像 就是 空=空 就返回?
echo %v% >> 18!m!.txt
这一行 V 在正确显示 发现 会出现一个数字(1)一同显示而又不做输出 这个(1)是怎么来的为什么不会输出 晕
显示:
C:\Users\Administrator\Desktop\1真随机相关>echo 13 1>>18!m!.txt
而这个只会输出 变量13 后面1是怎么来的为什么不输出 晕
作者: yhcfsr 时间: 2018-3-17 11:50
直接说出你的意图,说实在,全篇用@的,我都懒得去猜你的思路。
作者: /zhqsystem/zhq 时间: 2018-3-17 20:40
本帖最后由 /zhqsystem/zhq 于 2018-3-17 20:51 编辑
IP地址池这么截取是错误的,
这段%random:~1,10%很难理解如果产生随机数值是100,那么截取字符是00,有意义吗?如果产生随机数字符为0-9,那么字符串=空值,没有值时变量取值=字符串而不是变量
标准取值是=%random%%%256=范围0-255
ping建议取通用"TLL="的搜索,假设域名为22TTL1232.com,对于顶楼已经排除了这个错误,但是只是建议
作者: ads350668398 时间: 2018-3-21 10:55
16
16
12
5
5
10
12
12
1
13
10
10
10
这个是结果 一点也不随机 晕
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |