【问题标题】:BATCH For loop generating random numbersBATCH 循环生成随机数
【发布时间】:2015-03-29 01:42:06
【问题描述】:

好的,所以我遇到的这个问题涉及 CMD 脚本和这个:

DIR /A-D /B /S > DIR.DAT
FOR /F "TOKENS=*" %%I IN (DIR.DAT) DO (
  CALL :DICEROLL

  IF %NUMBER%==0 (
    ECHO BOOM BADDA BOOM
  ) ELSE (
    ECHO %NUMBER%
  )
)
:DICEROLL
SET /A NUMBER=%RANDOM% %% 16

当我运行文件时,我会得到这样的东西:

15
15
15
15

而不是我想要的是这样的:

14
0
8
10

我只是很困惑为什么它没有为它通过的每一行文本生成随机数。相反,它似乎只回显第一个生成的数字。如果这令人困惑,任何帮助将不胜感激和抱歉

【问题讨论】:

    标签: file batch-file for-loop random cmd


    【解决方案1】:

    在循环运行之前扩展环境变量。要修复它,您可以使用延迟扩展:!RANDOM!,但只有通过先运行setlocal enabledelayexpansion 启用它或使用cmd /v 启动cmd 才能使用它。

    【讨论】:

      猜你喜欢
      • 2014-02-14
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2019-08-04
      • 2013-10-11
      相关资源
      最近更新 更多