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

[系统相关] set /a计算获取随机数提示无效的数字什么原因

随机结果出错
  1. @echo off
  2. @setlocal enabledelayedexpansion
  3. ::>18!m!.txt type nul
  4. :loop
  5. @set "TTL=null"
  6. @set /a a=%random%*1%%254+1
  7. @set /a b=%random:~1,10%*1%%254+1
  8. @set /a c=%random:~2,10%*1%%254+1
  9. @set /a d=%random:~3,10%*1%%254+1
  10. @set ip=%a%.%b%.%c%.%d%
  11. @ping /n 1 127.0.0.1 >nul
  12. for /f "tokens=3 delims==" %%i in ('ping %ip% -n 2 -l 888 ^| find "TTL"') do (
  13.     set TTL=%%i
  14. )
  15. @if "!TTL!" equ "null" (
  16.     goto :loop
  17. )
  18. @ping /n 1 127.0.0.1 >nul
  19. @set ms=!TTL:~0,-6!
  20. @ping /n 1 127.0.0.1 >nul
  21. @set /a v=%ms%%%16+1
  22. @set m=%date:~5,2%%date:~8,2%
  23. @echo %v%>> 18!m!.txt
  24. goto :loop
复制代码

本帖最后由 380077403 于 2018-3-17 07:49 编辑

显示::
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
八进制(021)。
ECHO 处于关闭状态。
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
找不到操作数。



结果:10
14
10
11
16
16
ECHO 处于关闭状态。
10

TOP

回复 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是怎么来的为什么不输出 晕

TOP

返回列表