- @set "srcDir=R:\Downloads" && rem 来源
- @set "desDir=R:\Downloads2" && rem 目标
- @set "maxNum=3" && rem 最大文件数量
-
- @echo off
- title 随机文件拷贝工具
- setlocal enabledelayedexpansion
-
- rem 获取图片列表
- for /f "delims=?" %%b in ('dir /a/b/s "%srcDir%\*.jpg" "%srcDir%\*.jpeg" "%srcDir%\*.png"') do (
- set/a n+=1
- set "#F!n!=%%~b"
- )
-
- rem 生成随机数
- if %n% LEQ %maxNum% (
- echo 图片小于 %maxNum% 张!程序即将退出。
- pause
- goto :eof
- )
- :loop
- set/a rnd=!random! %% !n! + 1
- if not defined #R%rnd% (
- set/a #R%rnd%=%rnd%
- set/a n2+=1
- )
- if !n2! LSS %maxNum% goto :loop
-
- echo ^> 预览结果
- echo 来源:%srcDir%
- echo 目标:%desDir%
- echo 数量:%maxNum%
- echo 随机选择复制文件预览列表如下:
- for /f "tokens=1,* delims==" %%a in ('set #R') do (
- set "#F2%%b=!#F%%b:%srcDir%=%desDir%!"
- echo !#F2%%b!
- )
- set/p p=按任意键开始执行复制操作… <nul & pause>nul
- echo.& echo.
-
- echo ^> 执行复制操作
- for /f "tokens=1,* delims==" %%a in ('set #R') do (
- echo !#F2%%b!
- for /f "delims=?" %%c in ('echo,!#F2%%b!') do (
- if not exist "%%~dpc" md "%%~dpc"
- copy /v /y /z "!#F%%b!" "%%~dpc"
- )
- )
- set/p p=完成。按任意键退出本程序… <nul & pause>nul
- echo.& echo.
复制代码
- > 预览结果
- 来源:R:\Downloads
- 目标:R:\Downloads2
- 数量:3
- 随机选择复制文件预览列表如下:
- R:\Downloads2\1 2\nature13.jpg
- R:\Downloads2\3\11.png
- R:\Downloads2\4 5 6\pexels-photo.png
- 按任意键开始执行复制操作…
-
- > 执行复制操作
- R:\Downloads2\1 2\nature13.jpg
- 100% 已复制 已复制 1 个文件。
- R:\Downloads2\3\11.png
- 100% 已复制 已复制 1 个文件。
- R:\Downloads2\4 5 6\pexels-photo.png
- 100% 已复制 已复制 1 个文件。
- 完成。按任意键退出本程序…
复制代码
|