ランダムなファイルをディレクトリとそのサブディレクトリにバッチで開きたいとします。そして、私はそれのためのコードを与えるstackoverflowに十分な質問があることを知っているが、私はUTF-8文字のサポートで見つかったのどれも。名前にutf-8文字を含むバッチファイルをランダムに選択します。
私はstackoverflowで見つけた次のコードを使用します。
@echo off
setlocal
:: Create numbered list of files in a temporary file
set "tempFile=%temp%\%~nx0_fileList_%time::=.%.txt"
dir /b /s /a-d %1 | findstr /n "^" >"%tempFile%"
:: Count the files
for /f %%N in ('type "%tempFile%" ^| find /c /v ""') do set cnt=%%N
call :openRandomFile
:: Delete the temp file
del "%tempFile%"
exit /b
:openRandomFile
set /a "randomNum=(%random% %% cnt) + 1"
for /f "tokens=1* delims=:" %%A in (
'findstr "^%randomNum%:" "%tempFile%"'
) do start "" "%%B"
cmd /k
それは「blablabla_空色デイズ.MP3」のようなファイルを取り出すまで、その場合には、それはファイル」のようなエラーを与え、細かいそのように動作しますblablabla _ ?????。mp3が見つかりませんでした"これらのファイルは数十種類あります。
私はutf-8を使用するためにファイルの先頭にchcp 65001
を使用しようとしましたが、作成したteporary .txtリストには日本語ファイルの正しい名前が表示されますが、ピックアップ自体は、それで@echo off
を取り除き、cmdはset /a "randomNum=(%random% %% cnt) + 1"
でエラーを出力します。エラー:ゼロ除算。
ファイルがchcp 65001
なしですばらしい働きをしているので、この時点では何も起こっていません。 私はバッチを知らないのですが、誰にも実行方法を知っていますか? 私は本当に幸せだろう!
私は昨日からここに座っていましたが、これは最終的にすべての名前で動作します、ありがとう! – sunnlo