如何将随机文件从一个文件夹复制到另一个文件夹(批处理文件)

How to copy random files from one folder to another (a batch file)

我是编程新手,我只需要一个简单的脚本来 select 一个文件夹中的随机文件(15 个),该文件夹也包含多个其他文件夹。

每次执行脚本时,下面的代码都会复制相同的图片,因此随机化器不起作用。 还有没有办法从搜索中排除一些特殊的扩展名?就像我有 100 个文件夹,其中大部分是 .png 和 .jpeg 文件,还有一些其他扩展名。可以排除吗?

谢谢。

@echo off
setlocal EnableDelayedExpansion
cd "D:\temp\"
set n=0
for %%f in (*.*) do (
    set /A n+=1
    set "file[!n!]=%%f"
)

for /L %%i in (1,1,%time:~-1%) do set "dummy=!random!"
set /A "rand=(n*%random%)/32768+1"
copy "!file[%rand%]!" "D:\temprandom\" 

这是一个例子:

@echo off
setlocal enabledelayedexpansion
pushd "D:\temp\" || goto :EOF

for /f "tokens=1,* delims=[]" %%i in ('dir /b /s /a-d ^| findstr /RV "[.]jpg [.]png" ^| find /v /n ""') do (
    set "file%%i=%%~j"
    set "cnt=%%i"
)
for /l %%c in (1,1,15) do (
        set /a rand=!random! %% !cnt!
        for %%r in (!rand!) do copy "!file%%r!" "D:\temprandom\"
)
popd

请注意,for 循环中的 findstr /RV "[.]jpg [.]png" 表示要从搜索中排除的文件扩展名。

你需要了解的是,基于 dir /s 命令,它可以 运行 很长一段时间,特别是如果你有很多,所以不要指望速度是英雄这里的一天。