DOSはこちら
FOR /R folder %%f in (*.filetype) DO something
これを実行するたびにsomething
、FORループからランダムなファイル順序がフィードされます
ここでの秘訣は、一時ファイルにランダムな数値キーをプレフィックスとして付けたファイル名を記録し、行をランダムなキーで並べ替えてから、ファイル名を新しい順序で抽出することです。これは、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
とが最初の for 行 (一時ファイルへの書き込みが行われる場所) にあり、次の行にあることに注意してください。の代わりに、たとえばここに記述して、ファイル名をコンソールに出力できます。filetype
something
something
echo !file!