批处理文件随机将文件复制到另一个文件夹

批处理文件随机将文件复制到另一个文件夹

我需要一个批处理文件:

给定文件夹 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

这假设您的源文件夹中有适量的文件。否则,环境中的变量数量可能会变得太大。

相关内容