是否可以使批处理文件从指定文件夹中选择一个完全随机的文本文件
并且有人可以帮助我吗?
示例 假设我有一个位于此处的文件夹:C:\ Workstation \ Jobs 在该文件夹中,一次可能有10-20个.txt文件
这里的目标是让批处理文件检查文件夹,然后选择一个随机文件并将选择的文件输出到变量
答案 0 :(得分:2)
如果所述文件夹仅包含文本文件,则需要以下内容:
希望这会把你推向正确的方向: - )
来源:
http://ss64.com/nt/syntax-random.html
How to loop through files matching wildcard in batch file
Create list or arrays in Windows Batch
答案 1 :(得分:2)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /f %%a IN (
'dir /b /a-d "%sourcedir%\*.txt"^|find /i /c ".txt" '
) DO SET /a selection=1 + (%RANDOM% %% %%a)
FOR /f "tokens=1*delims=:" %%a IN (
'dir /b /a-d "%sourcedir%\*.txt"^|findstr /n /i ".txt" '
) DO IF %%a==%selection% SET filename=%%b
ECHO selected %filename%
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
find /c
计算dir
命令找到的文件数,for
将计数分配给%%a
。然后将selection
分配给1 +( randomnumber mod filecount ),给出1..filecount。
findstr /n
输出dir
命令找到的每个文件的名称,前缀为序号:%% a将被分配号码({}之前的标记{1}}和:
文件名(除了第一个分隔符,其中delims为%%b
)
当行号与:
匹配时,将为文件名分配找到的文件名。