« 改行文字変換フィルタをバッチファイルで作る。 | トップページ | コマンドプロンプトやバッチファイルで、環境変数に改行文字(CR)を入れて使う。 »

2008年11月 5日 (水)

コマンドプロンプトやバッチファイルで、環境変数に制御文字を入れる。

元になるシフトJIS文字を選びます。

まず、候補の文字の一覧を出します。

cscript hoge.vbs > hoge.txt

For n=0 To 15
  For k=&H8140 To &Hea9e
    If k=Asc(Chr(k)) Then
      If (AscW(Chr(k)) And 255) = n Then
        WScript.StdOut.WriteLine Join(Array(Hex(k),Chr(k),Hex(AscW(Chr(k)))),vbTab)
      End If
    End If
  Next
Next

この中から、制御文字が cc なら、unicode が hhcc の文字を選びます。

例えば、CR(0D) なら 名(540D) などです。

環境変数に制御文字を入れる。

setlocal enabledelayedexpansion
for /f "delims=" %%1 in ('cmd /u /c echo;名') do (
set CR=%%1
set CR=!CR:~0,1!
)

名 の unicode が 540D、これをシフトJISで読むと、0D 54 つまり、CR+T であることを利用して、CR を抜き出します。

ただし、LF(0A)は、このやり方ではできません。

« 改行文字変換フィルタをバッチファイルで作る。 | トップページ | コマンドプロンプトやバッチファイルで、環境変数に改行文字(CR)を入れて使う。 »