在Dos FOR命令中获取随机文件顺序

时间:2013-04-23 06:04:53

标签: for-loop dos

这是DOS

FOR /R folder %%f in (*.filetype) DO something

我喜欢实现,每次运行时,随机文件顺序都会从FOR循环中提供给something

1 个答案:

答案 0 :(得分:1)

这里的技巧是在临时文件中记录以随机数字键为前缀的文件名,按随机键对行进行排序,然后按新顺序提取文件名。这可以使用DOS命令typesort完成,如下所示:

@echo off
setlocal enabledelayedexpansion
set tempfile=_%RANDOM%_%RANDOM%_%RANDOM%_.tmp
type nul >%tempfile%
for /R folder %%i in (*.filetype) do set key=!RANDOM!!RANDOM!!RANDOM!000000000000& echo !key:~0,15!%%i>> %tempfile%
for /F "tokens=*" %%i in ('type %tempfile% ^| sort') do set line=%%i&set file=!line:~15!&something
del %tempfile%

请注意,示例中的标记folderfiletype位于第一个for-line(写入临时文件的位置),而something位于下一个线。 而不是something,您可以在此处写例如echo !file!来将文件名打印到控制台。