我正在尝试创建一个批处理文件,该文件将在 2 到 10 之间随机循环次数,并每次从文本文件中提取一条随机行并显示它。
set var1=%RANDOM%
set /a var2=(var1*9/32768)+2
for /l %%x in (1,1,%var2%) do (
set "lines=0"
for /f "tokens=*" %%a in (c:\myfile.txt) do set /a "lines+=1"
set /a "skip=%var1% %% lines"
if %skip% lss 1 (set "skip=") else (set "skip=skip=%skip%")
for /f "skip=%skip% tokens=*" %%a in (c:\myfile.txt) do set "item=%%a"&goto display
:display
echo %item%
)
这是两段不同的代码,它们各自独立工作,但我无法将它们放在一起。
每次运行时,下面的代码都会显示文件中的随机行。
set "lines=0"
for /f "tokens=*" %%a in (c:\myfile.txt) do set /a "lines+=1"
set /a "skip=%random% %% lines"
if %skip% lss 1 (set "skip=") else (set "skip=skip=%skip%")
for /f "%skip% tokens=*" %%a in (c:\myfile.txt) do set "item=%%a"&goto display
:display
echo %item%
此代码将显示 2 到 10 次之间的 1。
@echo off
set var1=%RANDOM%
set /a var2=(var1*9/32768)+2
for /l %%x in (1,1,%var2%) do (
echo 1
)
我可能只是忽略了显而易见的事情,但我没有做很多批处理脚本。