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負荷を表示する。 »