Windows でドラッグ アンド ドロップを使用して、バッチ ファイルを使用していくつかのファイルを処理したいと考えています。
一部のファイルには、名前に Unicode 文字が含まれています (例: Example_ěø.txt)。
残念ながら、非 ASCII 文字の多くは途中で壊れてしまいます。たとえば、次のような単純なバッチ ファイルを使用すると、
echo %*
上記の例の名前のファイルをドラッグ アンド ドロップすると、次のようになります。
C:\>echo "C:\Example_eo.txt"
"C:\Example_eo.txt"
したがって、ěø は eo に変換されており、当然、ファイルは見つかりません。
バッチ ファイルにドラッグ アンド ドロップされたファイルの実際の Unicode 名/パスにアクセスする Windows バッチ ファイルの方法はありますか?
回答: chcp 65001 を使用しますが、コマンドがバット ファイルを終了しないようにするには、コマンドからの出力をすべて nul にルーティングする必要があります。また、&& を使用して次のコマンドを同じ行に配置する必要があることもわかりました。だから私のサンプルバットファイルは今読む
chcp 65001 > nul && echo %* && pause
ドロップされたファイルのファイル名/パスの unicode/utf-8 バージョンを示します。