0

このサイトで、txt ファイルの行から変数に値を割り当てる便利なスクリプトを見つけました。

@echo off

setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F "tokens=*" %%A in (caplist.txt) do (
    SET /A vidx=!vidx! + 1
    set var!vidx!=%%A
    echo %%A
)
set var > test.txt
pause

正常に動作しますが、テキスト ファイルの行に ñ、é などのスペイン語の文字が含まれています。test.txt の行は問題ありませんが、for ループのエコーでエキゾチックな文字が表示されます。ところで、ファイルの単純な Type コマンドを実行するだけで同じ効果が得られます。

誰かが助けることができますか?どうもありがとう

4

1 に答える 1

0

これは、cmd.exe の出力を表示しているターミナル ウィンドウが、caplist.txt 内の文字がエンコードされている別のコードページを使用しているためです。

おそらく、それらは ISO 8859-1 または UTF-8 を使用してエンコードされています。

chcp 1250端末で試して、これで問題が解決するかどうかを確認してください。

そうでない場合は、テキスト ファイルを 16 進数でダンプし、使用されているエンコーディングを調べ、それに応じて端末のコード ページを設定します。

于 2012-05-29T18:38:14.650 に答える