在批处理中随机选择两个名称

时间:2017-02-06 08:18:20

标签: batch-file

我正在尝试让批处理脚本在两个名称之间随机选择并一次输出一个,有点像这样:

@echo off
::I would not be prompted to enter these, they would already be programmed into the script.
ChooseRandomSet=Maria
                Sean
                Matt
                Laura
ChooseRandom

那么,在用户方面,你会看到:

C:\>script.bat
Matt was randomly chosen.
C:\>script.bat
Sean was randomly chosen.
C:\>

谢谢!

2 个答案:

答案 0 :(得分:1)

首先创建一个文本文件,其中包含所有名称:

Maria
Sean
Matt
Laura

然后使用以下代码创建.bat文件:

@ECHO OFF
IF "%~1"=="" (ECHO No text file specified & GOTO :EOF)
IF NOT EXIST %1 (ECHO Text file doesn't exist. & GOTO :EOF)
FOR /F "" %%I IN ('FIND /C /V "" ^<%1') DO SET /A lines=%%I
IF %lines%==0 (ECHO Text file is empty or unreadable & GOTO :EOF)
SET /A skip=(%RANDOM%*32768+%RANDOM%)%%lines
<%1 (
  FOR /L %%I IN (1,1,%skip%) DO (
    SET /P line=
  )
  SET line=
  SET /P line=
)
ECHO(%line%

这将从文件中打印出一个名称,它还会检查某些错误,如:

  • 未指定文字文件
  • 指定文件但不存在
  • 空文本文件

<强>声明: 我使用这个蝙蝠脚本的东西,但我没有写它,我可能已经改变了一些事情多年来,但它主要是因为我发现它一段时间。 (不是Windows家伙......:P)

答案 1 :(得分:0)

更新:我也通过实验找到了答案。这从两个可能的选择中选择一个选项:

@echo off
if %random% gtr %random% (
      echo heads
) else (
echo tails
pause