0
d:\test
の各サブディレクトリから1つのファイルを取り出し、f:\source
に入れてください。これは行いますが、ランダム化部分は機能しません。各フォルダの各ファイルは作成日に基づいて選択され、各フォルダの最後の「作成済み」ファイルは常にf:\source
に表示されます。なぜこのスクリプトは実際にはランダム化されていないのですか?
なぜでしょうか?
setlocal EnableDelayedExpansion
cd D:\test
set t=0
for /d %%i in (*) do (
cd "%%i"
set /A t+=1
set n[!t!]=0
for %%f in (*.*) do (
set /A n[!t!]+=1
set "file[!n!]=%%f"
)
set /A "rand=(n[!t!]*%random%)/32768+1"
copy "!file[%rand%]!" f:\source
cd..
)
pause
クラシック
set /?
pushd /?
popd /?
は、拡張問題を遅らせました。 '%random%'の代わりに '!random!'を使用してください – SomethingDark