bat批处理在一个a文件夹下新建一个b文件夹,然后随机复制文件

你好,之前的脚本帮了我很大的忙,现在有得需要你帮忙了:bat批处理 ,在一个a文件夹下新建一个b文件夹,然后随机复制a文件夹中的文件(9个到17个,也是随机)到刚才新建的文件夹b 中。我看到你回答了某一个人的问题,他是要求复制6 个,然后我在脚本中把那个6 改动成随机数,发现不行,不知道哪里出了问题,希望你能帮帮我,谢谢了。

@echo off & title 随机移动指定范围内随机数量文件 By 依梦琴瑶
setlocal enabledelayedexpansion

::设置A文件夹路径
set A=A

::设置B文件夹路径
set B=B

::如果需要存放到更多目录,请在上面自行定义变量后,加到下方变量中去
::每个变量必须用双引号括起来,并用英文逗号隔开
set Dirs="%B%"

::设置每个文件夹存放的随机数量范围
set F_Num=9-17

::设置要移动的文件后缀名,如果不限,请直接填写*符号
set Ext=*

for /f "tokens=1,2 delims=-" %%a in ("%F_Num%") do (
    set Least=%%a
    set Most=%%b
)
set /a M=Most+1

(for /f "delims=" %%a in ('dir /a-d/b "%A%\*.%Ext%"') do (
    set /a RandNum=!random!%%1000+1000
    echo !RandNum!^|"%A%\%%~a"
))>filelist.$

sort filelist.$ /o filelist.#

for %%i in (%Dirs%) do (
    set Count=0
    if defined Line (
        call set Skip=skip=!Line!
    )
    call :MoveFile "%%~i" "!Skip!"
)
del filelist.*
pause
exit

:MoveFile
set /a sjs=!random!%%!M!
if !sjs! leq !Most! (
    if !sjs! geq !Least! (
        goto MoveContinue
    )
)
goto MoveFile

:MoveContinue
for /f "%~2 tokens=2 delims=|" %%a in (filelist.#) do (
    set /a Count+=1
    if !Count! leq !sjs! (
        move "%%~a" "%~1\"
        set /a Line+=1
    )
)
goto :eof

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
相似回答