两者都是三层结构
A(b1 .. b8 ( c1 ...c31
d1 ...c31
....
Y(b1 .. b8 ( c1 ...c31
d1 ...c31
....
要求把c1 中的全部文件复制 到 Y-b8 - d1 中取
其中 要求随机 从A 中选取 尽量 保证 Y-----d 中的连续
Y的最下层 全部填满- @echo off
- setlocal enabledelayedexpansion
- set count1=
- set skp1=
- rem 2 for
- set skp2=
-
- set /a randNum=
-
- for /f %%i in ( 'dir /ad /s /b E:\补充资料\剪切实验' ) do (
- set /a count1=count1+1
- )
- for /f %%i in ( 'dir /ad /b E:\补充资料\剪切实验' ) do (
- set /a skp1=skp1+1
- )
- rem 获得随机的范围
- set /a randNum=count1-skp1
- for /f %%i in ( 'dir /ad /b E:\补充资料\2022' ) do (
- set /a skp2=skp2+1
- )
- rem 处理数据源
-
- set /a num=0
- for /f "skip=%skp1% " %%a in ( 'dir /ad /s /b E:\补充资料\剪切实验' ) do (
- set /a num=num+1
- set path1=
- dir /a-d /s /b %%a>nul 2>nul
- if errorlevel 1 (
- echo !num!$!path1!>>list.txt
- ) else (
- for /f %%i in ( 'dir /a-d /s /b %%a' ) do (
- set path1=!path1!$%%~dpnxi
- )
- echo !num!!path1!>>list.txt
- )
- )
- rem 复制
- for /f "skip=%skp2% " %%a in ( 'dir /ad /s /b E:\补充资料\2022' ) do (
- :again
- set bpath1=
- set bpath2=
- set count=0
- set /a randNum=!random!%%%randNum%+1
- echo !randNum!
- for /f "tokens=1,2,3 delims=$" %%i in ( list.txt ) do (
- if !randNum! == %%i (
- set bpath1=%%j
- set bpath2=%%k
- )
- )
- echo !bpath1!---^>%%a
- if defined bpath1 ( copy !bpath1! %%a ) else ( set /a count=count+1 )
- echo !bpath2!---^>%%a
- if defined bpath2 ( copy !bpath2! %%a ) else ( set /a count=count+1 )
-
- if !count! == 2 goto again
- )
复制代码 题主的意思是 随机取一组随机放 到 另外的一个文件夹中 我的理解是随机取就够了
现实场景是 数据造假 利用现有的 数据在放到另外的一个中去 |