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

时间:2015-12-04 10:58:35

标签: batch-file

我正在尝试创建一个批处理文件,将随机文件从一个文件夹复制到另一个文件夹。但是当我运行下面的代码时,它每次都会复制相同的文件。有谁知道代码有什么问题? 我在.jpg .txt .rtf文件夹中有不同类型的文件我不知道这是不是为什么它不起作用。

@echo off
    setlocal EnableDelayedExpansion
    cd c:\users\paul\desktop\11\
    set n=0
    for %%f in (*.*) do (
       set /A n+=1
       set "file[!n!]=%%f"
    )
    set /A "rand=(n*%random%)/32768+1"
    copy "!file[%rand%]!" c:\users\paul\desktop\12

1 个答案:

答案 0 :(得分:1)

您是否通过从资源管理器双击运行此批处理文件?当cmd.exe开始执行时,它会使用当前时间初始化随机种子,因此如果您在短时间内多次执行批处理文件,并且要选择的不同文件的数量很小(如50),则相同的文件将是每次都选择。

你可以"随机化"随机数有几种方式;这是最简单的方法之一:

for /L %%i in (1,1,%time:~-1%) do set "dummy=!random!"

在使用%random%的行之前插入此行。