バッチファイルで英語と日本語の表示を切り替えたいとき

課長に教えて貰ったのでメモ書き。

英語OSと日本語OSで、バッチのecho出力を切り替えたいときの方法とか。
chcpというコマンドで現在の文字コードがあるので、それで表示を分岐させればいいらしいです。

書くとこんな感じ。 Jp_En_Change.txt

@echo off

@rem 実行している文字コードの変数を取得
for /f "tokens=3 delims= " %%a in ('chcp') do set lang=%%a

@rem 文字コードが日本語(932)なのかの確認
if "%lang%" == "932" ( goto :ViewJPN ) else ( goto :ViewDefault )

@rem 日本語の表示
:ViewJPN
cls
echo 日本語
echo.
pause
goto :EOF

@rem 日本語以外の表示
:ViewDefault
cls
echo English
echo.
pause
goto :EOF

この場合は、日本語の文字コードだったら日本語で、それ以外の文字コードだったら英語になります。
一応、Windows 2000、Windows XP、Windows 7にて、地域言語のUnicode非対応を変えてテストしてみたところ、きちんと表示が変わりました。

他にもDOSコマンドで使えそうなのはあったんですが、Windows7ではコマンドが実装されていなかったりしたやつがあり、これが一番良さそうでした。
複数言語用のバッチを作る場合は、結構役立つかも。

Windowsコマンドプロンプト スパテク242 Vista/XP/2000対応 (スパテクシリーズ)Windowsコマンドプロンプト スパテク242 Vista/XP/2000対応 (スパテクシリーズ)
飯島 弘文

翔泳社 2008-03-14
売り上げランキング : 46917

Amazonで詳しく見る
by G-Tools

| コメント(0) | トラックバック(0) |
■Yahoo!オークション おすすめ商品■
Web Services by Yahoo! JAPAN

トラックバック(0)

トラックバックURL: http://type-y.com/mt/mt-tb.cgi/1606

コメントする