« pingやwmicなど、改行文字がおかしい(CR+CR+LF)コマンド出力をforコマンドで処理する。 | トップページ | タスクバーにCPU負荷を表示する。 »

2009年9月 5日 (土)

wmicの出力は、リダイレクションとパイプで文字コードが異なる。

ファイルへのリダイレクションは、BOM付きUnicodeLEです。こちらの改行文字は正常です。CR+LF

一方、パイプは、シフトJISです。こちらの改行文字が変です。CR+CR+LF

ところで、for /F で読めるのは、シフトJISです。Unicodeは読めません。

なので、wmicの出力をファイルに出して、for /F %I in (ファイル) では読めません。
for /F %I in ('type ファイル') なら、シフトJISに変換されるので、読めます。改行文字の問題もありません。

また、for /F %I in ('コマンド') はパイプなので、wmicの出力がそのまま読めます。ただし、改行文字が。。。

« pingやwmicなど、改行文字がおかしい(CR+CR+LF)コマンド出力をforコマンドで処理する。 | トップページ | タスクバーにCPU負荷を表示する。 »