是否可以批量使用一个变量来制作数字字符串?

问题描述 投票:0回答:1

我是批量编码的新手,但这是一个我不知道如何解决的问题。我想让它做的是让它只使用一个变量,像这样:

@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)

我测试过它,我知道它可以创建和设置变量。提前致谢!

batch-file
1个回答
1
投票
@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%
不是完全随机的。

© www.soinside.com 2019 - 2024. All rights reserved.