批处理脚本在循环中向字符串添加数字

时间:2015-02-05 11:30:19

标签: batch-file

我需要生成虚拟用户列表。没有用户将作为输入提供..如5或500或5000。 我想要的是拥有像usr这样的标准文本并附加一个数字并生成像usr1,usr2,usr3等的列表。我想我可以快速地在批处理文件中执行此操作。但坚持循环并将数字附加到字符串..可以帮助吗?

@echo  OFF  
SETLOCAL ENABLEDELAYEDEXPANSION
set /p numb="Enter how many users to be generated "
set numb2=0
set x=0
set name1=tstusr
set name1=tstusr
set name2=%name1%
for /l %%x in (1,1,%numb%) do (
echo %%x
set numb2=%%x
set name1=tstusr
set name2=%name1%%numb2%
echo %name1%
echo %name2%
)

3 个答案:

答案 0 :(得分:2)

我不确定我是否做对了。您只需要一个脚本,要求您输入数字X然后输出

  

USR1

     

USR2

     

USR3

     

...

     

USRx位置

在这种情况下,这将是代码:

@ECHO  OFF  
SET /p numb="Enter how many users to be generated "
FOR /l %%I IN (1,1,%numb%) DO (
    ECHO usr%%I
)
PAUSE

如果这不是问题,请帮助我理解您的脚本。例如。你为什么三次使用set name1=tstusr

答案 1 :(得分:1)

略微修改代码......

@echo  OFF  
SETLOCAL ENABLEDELAYEDEXPANSION
set /p numb="Enter how many users to be generated "
set numb2=0
set x=0
set name1=tstusr
set name1=tstusr
set name2=%name1%

for /l %%x in (1,1,%numb%) do (
    echo %%x
    set numb2=%%x
    set name1=tstusr
    set name2=!name1!!numb2!
    echo !name1!
    echo !name2!
)

endlocal

答案 2 :(得分:0)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set /p numb="Enter how many users to be generated "
>q28342811.txt ECHO tstusr%random%
:loop
set "name=tstusr%random%"
FINDSTR /x "%name%" q28342811.txt >NUL
IF ERRORLEVEL 1 SET /a numb -=1&>>q28342811.txt ECHO %name%
IF %numb% gtr 1 GOTO loop 

TYPE q28342811.txt

GOTO :EOF

制作q28342811.txt

为输出文件生成一个随机用户名,然后重复操作numb - 1次,检查新候选者是否先存在于文件中。

相关问题