1

这是DOS

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

我喜欢实现,每次运行时,随机文件顺序something将从 FOR 循环中输入

4

1 回答 1

1

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

@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%

folder请注意,在您的示例中,令牌filetype位于第一行(写入临时文件的位置),而something在下一行。而不是something,您可以在这里编写例如echo !file!将文件名打印到控制台。

于 2013-04-26T19:16:50.560 回答