3

タイトルに 0x96 文字が含まれるTFSプロジェクトがあります。たとえば、バッチ ファイルで参照する必要がある "Project – X" です。問題は、この特定のダッシュが (0x20 ではなく) 0x96 で表されることです。これは Unicode の制御文字 (ASCII のû?) であるため、次の (ANSI エンコードされた .cmd ファイルの) は「Project û X」として失敗します。

echo "Project – X"

しかし、コマンドラインに直接貼り付けると(私は思う)、0x96を0x20に変換して変換します(ファイル名が一致しないため、これは良くありません)。16 進エディタでこれを試してみましたが、不正行為が行われているようです。

ANSI 以外でエンコードされている場合、.cmd ファイルは機能しません。

4

2 に答える 2

4

デフォルトでは、cmd.exe は古い「OEM」コードページを使用しますが、Unicode 以前の Windows アプリケーションは「ANSI」コードページ ( Windows でサポートされるコード ページ) を使用します。

jebが暗示しているように)テキストファイルをOEMエンコーディングで保存するか(その文字が含まれていると仮定して)、コンソールをANSIエンコーディングに切り替える必要があります。

于 2011-01-04T22:08:32.860 に答える
2

このようなものが機能します

@echo off
SETLOCAL EnableDelayedExpansion
chcp 1252
set "name=Projekt û X.txt"
chcp 850
type "!name!"

重要なのはchcp 1252です。chcp 850 はデフォルトのコード ページに戻すためだけのものですが、必須ではありません。

于 2011-01-04T15:48:31.110 に答える