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とが最初の for 行 (一時ファイルへの書き込みが行われる場所) にあり、次の行にあることに注意してください。の代わりに、たとえばここに記述して、ファイル名をコンソールに出力できます。filetypesomethingsomethingecho !file!

于 2013-04-26T19:16:50.560 に答える