List 如何从txt文件中获取一个随机单词,并将其设置为批量变量
很抱歉,如果以前有人问过这个问题,我找不到专门针对这个问题的任何东西 我有一个list.txt,每行有一个新词,比如List 如何从txt文件中获取一个随机单词,并将其设置为批量变量,list,batch-file,for-loop,cmd,List,Batch File,For Loop,Cmd,很抱歉,如果以前有人问过这个问题,我找不到专门针对这个问题的任何东西 我有一个list.txt,每行有一个新词,比如 do re me fa something somethingelse 如何获取一个随机单词(假设列表中有随机数量的行)并将其设置为%变量% 我很确定我需要“for”命令,但我不知道如何使用它 谢谢 编辑:我的坏,我应该在Windows批处理中指定此选项尝试此选项(您必须更改第三行文件的路径): 更新: @echo off setlocal set "file=words.tx
do
re
me
fa
something
somethingelse
如何获取一个随机单词(假设列表中有随机数量的行)并将其设置为%变量%
我很确定我需要“for”命令,但我不知道如何使用它
谢谢
编辑:我的坏,我应该在Windows批处理中指定此选项尝试此选项(您必须更改第三行文件的路径):
更新:
@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
对于PowerShell,这是一个很简单的
PowerShell-NoP-C“获取内容。\file.txt | Get Random”
可以很容易地打包成一批。标题应该要求随机行而不是单词。实际上只是一个快速的改进,将随机行部分更改为此,这样更可靠set/a“random\u line=%random%%%%%lines%”
您必须以不同的方式处理该案例,因为/F的不接受跳过=0
选项…@aschipfl-啊,是的,如果条件满足,我必须添加一个。已更新。。。。。。。。
@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