如何从txt文件中抓取随机单词并将其设置为Batch中的变量

时间:2018-12-14 02:05:01

标签: list batch-file for-loop cmd

对不起,是否曾经有人问过我,尽管专门为此我找不到任何东西。

我有一个list.txt,每行都有一个新词,例如

do
re
me
fa
something
somethingelse

如何获取随机单词(假设列表中的行数随机)并将其设置为%variable%?

我很确定我需要“ for”命令,但是我不知道如何使用它

谢谢

编辑:不好,我应该指定它在Windows Batch中

1 个答案:

答案 0 :(得分:1)

尝试一下(您必须在第三行上更改文件的路径):

@echo off
setlocal
set "file=words.txt"

for /f %%# in (
    'findstr  /r /n "^" "%file%" ^|find /c ":"'
) do (
    set lines=%%#
)

set /a random_line=(%RANDOM%*%lines%/32768)

for /f "usebackq skip=%random_line%" %%# in ("%file%") do (
    set "random_word=%%#"
    goto :break
)   
:break

echo %random_word%
endlocal

更新:

@echo off
setlocal
set "file=words.txt"

for /f %%# in (
    'findstr  /r /n "^" "%file%" ^|find /c ":"'
) do (
    set lines=%%#
)

set /a random_line=random_line=%random% %% %lines%

if random_line==0 (
    set "skip="
) else (
    set "skip=skip=%random_line%"
)

for /f "usebackq %skip%" %%# in ("%file%") do (
    set "random_word=%%#"
    goto :break
)   
:break

echo %random_word%
endlocal