我是批量编码的新手,但这是一个我不知道如何解决的问题。我想让它做的是让它只使用一个变量,像这样:
@echo off
:string
set /a one+=%RANDOM% * 5 / 32768 + 1
(string code here)
set /a times+=1
if %times% equ 5 goto tell
goto string
:tell
echo Numbers: %string%
输出将是这样的: 数字:5 2 4 2 3
我一直在搞乱 %RANDOM% 但我想知道这是否可能。最后一件事是我这样做是为了提示您字符串中有很多数字,所以如果没有快捷方式,那么代码量就会模糊不清。例如:
set /a varone=1
set /a vartwo=2
set /a varthree=6
set /a varfour=3
set /a varfive=9
[...]
我试着让它自动创建和设置变量。我能够创建变量,但无法将它们放入字符串中。代码是这样的:
@echo off
:start
set /a g+=1
set /a va%g%r=%RANDOM% * 5 / 32768 + 1
set /a times+=1
if %times% equ 5 goto tell
goto start
:tell
(This is where I got stuck)
我测试过它,我知道它可以创建和设置变量。提前致谢!
@ECHO OFF
SETLOCAL
SET /p "count=How many numbers ? "
SET /p "limit=Range 1.. ? "
SET "string="
:another
SET /a selection=1+(%random% %% %limit%)
SET "string=%selection% %string%"
SET /a var%count%=selection
SET /a count-=1
IF %count% gtr 0 GOTO another
ECHO string=%string%
SET var
GOTO :EOF
这是解决问题的原始方法。
它假设用户输入是合理的——一个正整数,而不是
xyz
例如。
string
中产生的字符串将有一个尾随空格。
set "string=%string:~0,-1%"
会剥离那个空间。
随机选择略微倾斜,除非
limit
是2的幂-并且%random%
不是完全随机的。