20

パスにアクセント付き文字が含まれる場所で EXE ファイルを実行する命令を含む Windows バッチ ファイルがあります。バッチファイルの内容は次のとおりです。

@echo off
C:\español\jre\bin\java.exe -version

C:\español\jre\bin\java.exe - このパスは存在し、適切です。このコマンドは、cmd.exe で直接実行できます。しかし、bat/cmd ファイルからコマンドを実行すると、「指定されたパスが見つかりません」というメッセージが表示されて失敗します。

これを修正する 1 つの方法は、コード ページを 1252 に設定することです (これは私にとって有効です)。しかし、英語以外のロケール用にコード ページを設定する必要があり、どのコード ページを使用するかを判断するのは非常に困難です。

この問題を解決する別の方法はありますか? 多分コマンドラインオプションか何か?

4

7 に答える 7

23

Another way of doing this, in Windows, is by using wordpad.exe:

  1. Run wordpad.exe
  2. Write your script as you usually do, with accents
  3. Choose Save as > Other formats
  4. Choose to save it as Text document MS-DOS (*.txt)
  5. Change the file extension from .txt to .bat
于 2014-03-12T10:27:43.030 に答える
12

私は同じ問題を抱えていましたが、この回答で解決しました。基本的に、端末のコードページを変更して復元するには、スクリプトを一連のコマンドでラップする必要があります。

@echo off
for /f "tokens=2 delims=:." %%x in ('chcp') do set cp=%%x
chcp 1252>nul

:: your stuff here ::

chcp %cp%>nul

魔法のように働きました!

于 2013-02-02T13:24:03.767 に答える
8

私はメモ帳++を使用していますが、「文字セット」を変更するオプションがあり、OEM-USうまくいきました。;)

于 2016-10-26T13:27:28.390 に答える
6

あなたが持っているので@echo off、バッチがコマンドプロンプトに送信しているものを見ることができません。それをオフにして問題を再現するとñ、出力が次のようになるため、文字が誤解されているように見えます。

C:\espa±ol\jre\bin\java -version
The system cannot find the path specified.

コマンドプロンプトからコマンドをバッチファイルにエコーすることで、動作させることができました。

echo C:\español\jre\bin\java.exe -version>>test.bat

これは、コマンドプロンプトが探しているものに文字を変換するようですが、英語のロケールセットでのみテストしたため、すべての状況で機能するかどうかはわかりません. また、メモ帳などのテキスト エディタでバッチを開くと、正しく表示されません ( C:\espa¤ol\jre\bin\java.exe) 。

于 2011-10-22T19:29:47.090 に答える
3

Visual Studio Code を使用すると、使用するエンコーディングを選択できます。右下隅でエンコーディングを選択すると、「エンコーディングで保存」オプションが表示されます。DOS を選択すると、アクセント付きの文字が保存されます。

于 2020-01-09T17:13:15.087 に答える