对不起,是否曾经有人问过我,尽管专门为此我找不到任何东西。
我有一个list.txt,每行都有一个新词,例如
do
re
me
fa
something
somethingelse
如何获取随机单词(假设列表中的行数随机)并将其设置为%variable%?
我很确定我需要“ for”命令,但是我不知道如何使用它
谢谢
编辑:不好,我应该指定它在Windows Batch中
答案 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