我正在尝试创建一个批处理文件,将随机文件从一个文件夹复制到另一个文件夹。但是当我运行下面的代码时,它每次都会复制相同的文件。有谁知道代码有什么问题? 我在.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
答案 0 :(得分:1)
您是否通过从资源管理器双击运行此批处理文件?当cmd.exe开始执行时,它会使用当前时间初始化随机种子,因此如果您在短时间内多次执行批处理文件,并且要选择的不同文件的数量很小(如50),则相同的文件将是每次都选择。
你可以"随机化"随机数有几种方式;这是最简单的方法之一:
for /L %%i in (1,1,%time:~-1%) do set "dummy=!random!"
在使用%random%
的行之前插入此行。