2011-01-04 6 views
3

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

echo "Project – X" 

しかし、(私が思うに)まっすぐなコマンドラインに貼り付けたときに、それは詐欺と(私のファイル名が一致しないと無意味です)の0x20 0x96に変換します。私はこれをヘキサエディタで試してみたところ、不正行為があるようです。

.cmdファイルは、ANSI以外のものとしてエンコードされていると動作しません。このような

答えて

2

何かがCHCP 850が戻って私のデフォルトコードページに切り替えることだけで、重要なことは、CHCP 1252ある

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

動作しますが、それは必要ありませんです。

+0

スニペットありがとう、素晴らしい作品:) – timB33

3

既定では、cmd.exeは古い "OEM"コードページを使用します。一方、Unicode前のWindowsアプリケーションは "ANSI"コードページ(Code Pages Supported by Windows)を使用します。

as jeb alludes)は、テキストファイルをOEMエンコード(文字が偶数であることが前提)で保存するか、ANSIエンコードでswitch your consoleに保存する必要があります。

+0

コードページを変更していただきありがとうございました – timB33