我需要一个批处理文件:
给定文件夹 A 包含.txt
文件;例如,
C:\A\a.txt
C:\A\b.txt
C:\A\c.txt
C:\A\d.txt
和文件夹 B(为空),每次运行时,我需要批处理脚本从文件夹 A 随机选择的一个文件复制到文件夹 B。
答案1
灵感来自这个帖子,你的脚本可能看起来像这样
@echo off
setlocal enabledelayedexpansion
set source=c:\A
set target=c:\B
set count=0
set x=0
:: put all the files into a pseudo-array prefixed with "TXT_"
for /r "%source%" %%a in (*.txt) do (
set TXT_!count!=%%~a
set /a count+=1
)
:: Use the 'modulo' function to get a usable value from system variable %random%
set /a x="%random% %% count"
:: Pull the relevant item out of the "TXT_" 'array'
set chosen=!TXT_%x%!
echo:I chose :: %chosen%
copy /y "%chosen%" "%target%" 1>nul
endlocal
这假设您的源文件夹中有适量的文件。否则,环境中的变量数量可能会变得太大。