パラメータがあるコマンドラインからプログラムを実行しようとしています。私のパスワードには「£」という記号があります。私はそれを逃すことができませんでした。バッチファイルで '£'のエスケープ文字
答えて
ASCII文字や数字以外の文字も二重引用符で囲んだ非常に良いパスワードのように、パラメータ文字列を囲むことは常に良いことです。
しかし、ASCII tableではないバッチファイルの文字を使用することに注意しなければなりません。つまり、文字のコードポイント値(バイト値)は小数点以下127桁です。
Windowsメモ帳を使用してバッチファイルを作成し、ファイルをANSIエンコーディングで保存すると、コードポイント値が127より大きい文字は、Windows 地域および言語のコードページを使用して保存されます。北米および西ヨーロッパ諸国では、これはコードページWindows-1252を使用することを意味します。ポンド記号は、このコードページでは小数点以下163(16進数:A3)です。
コマンドプロセスでは、コマンドプロンプトウィンドウを開き、パラメータなしでCHCP(コードページの変更)コマンドを実行すると表示される別のコードページが使用されます。このコマンドは、Windows 地域および言語の設定にも依存するコマンド処理のアクティブコードページを出力します。コードページOEM 437は、北アメリカ諸国で使用され、西ヨーロッパ諸国ではOEM 850がコマンド処理内でデフォルトで使用されます。シャープ記号は、コードページ内としても、コード・ページ437の小数点値156を持っているパスワードとを比較し、アプリケーションがパスワードでシャープ記号のために期待するかを知る必要があり言い換えれば850
:
- パスワードとしての値163のバイトは、GUIアプリケーションを使用して定義されました。
- パスワードが156のバイトは、コマンドプロンプトウィンドウから定義されています。
- または、ポンド記号のパスワードとして使用されるコードページと文字エンコード(ANSI、OEM、UTF-8、UTF-16)に応じて、1つまたはそれ以上の他のバイト値が定義されました。たとえば、UTF-8の文字エンコーディングでは、2バイトを使用して小数点194と163を使用してpound signをエンコードします。
だから、バッチファイルに書き込むものは何ですか?
まあ、あなたはそれを自分で見つけなければなりません。
たとえば、コードページ850を使用してコマンドプロンプトウィンドウからパスワードを定義したため、保存されたパスワードのポンド記号は値156の1バイトです。コードページ1252を使用してバッチファイルをメモ帳で編集するため、バッチファイルのパスワード文字列に値156のバイトを含めるには、パスワードœ
をパスワードで使用する必要があります。
ありがとう、私は、バッチでCHCP 1252を使用するように考え出しましたが、ポンド記号をエコーしますが、2つの異なるコードページからのものはどうでしょうか?ご質問が間違っている場合はごめんなさい! – Maharaj
文字エンコーディングについて知らないようです。プログラムによって文字がどのように管理されているかについての基本的な知識を得るには、[UltraEdit/UEStudioでのUnicodeの操作](http://www.ultraedit.com/support/tutorials_power_tips/ultraedit/unicode.html)のページを参照することをお勧めします。次に、パスワードを検証するアプリケーションが文字を比較しないことを知る必要があります。アプリケーションはバイトを比較します。 – Mofi
パスワードとして表示される内容は重要ではありません。アプリケーションによってどのバイトがパスワードとして保存されるかは重要です。それらのバイトをテキストエディタでの表示方法やバッチファイルの実行時にコンソールウィンドウに表示する方法とは無関係に、バッチファイル経由でアプリケーションに渡す必要があります。言い換えれば、アプリケーションに渡される0と1のシーケンスは、格納されたパスワードの0と1と同一でなければなりません。世界はコンピュータのバイナリです。 – Mofi
- 1. バッチファイルで特殊文字をエスケープする問題
- 2. 文字をエスケープする方法 "?" For..Doバッチファイルで?
- 3. Windowsバッチファイルの予約文字をエスケープする方法
- 4. 文字列のエスケープ文字をエスケープできません
- 5. HTMLエスケープ文字
- 6. エスケープ文字
- 7. .NETエスケープ文字?
- 8. エスケープ文字
- 9. エスケープ文字
- 10. エスケープ文字
- 11. Kivyエスケープ文字
- 12. エスケープ文字
- 13. python3:エスケープされていないエスケープ文字で囲まれたエスケープ文字
- 14. NSStringのエスケープ文字
- 15. CStringのエスケープ文字
- 16. ユーザーストリングのエスケープ文字をエスケープする
- 17. DataWeave文字列のエスケープ文字
- 18. エスケープ= java文字列の文字
- 19. 文字列エスケープ文字の補間
- 20. エスケープSQL文字列Javaで
- 21. OMath buildup()エスケープ文字
- 22. エスケープNSDateFormatter文字列
- 23. バッチファイルの左の文字列
- 24. sqlcmdの$のエスケープ文字
- 25. バッチファイルの文字列操作
- 26. バッチファイル内の国際文字
- 27. バッチファイルの特殊文字
- 28. ユニコードのエスケープ文字を含む文字列を通常の文字列に変換する(エスケープ文字なし)
- 29. Python2.xのUnicode文字列からエスケープ文字(エスケープ文字のUnicode文字)を削除するには?
- 30. Githubコミットメッセージのエスケープ "@"文字
その文字をエスケープする必要はありません。あなたはどんな問題を経験していますか? – SomethingDark
ユニコード値を試しましたか? @記号に似た問題があり、unicodeを使って私のために修正しました。 –
-SomethingDark、私はエコーを直接コマンドプロンプトで入力すると同じことが起こりますが、これをバットファイルに入れて実行しようとすると、このエコーが表示されます。ú-PHClaus私は4つのフォーマットすべてでバットを保存しようとしました。メモ帳は何も役立ちません! – Maharaj