ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

FileSystemObject#GetStandardStreamなんてのがあるらしい。

VBScriptバイナリファイル扱えたらいいのになぁとか思って、MSDN@USを見に行ってみたら、微妙にJPの内容と違うではありませんか。(っていうか、日本のやつ化けて見えると思ったら、IEじゃないからだった。。)
JP: http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/jsobjFileSystem.asp
US: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/af4423b2-4ee8-41d6-a704-49926cd4d2e8.asp
で発見したのが、FileSystemObject#GetStandardStreamっていうやつ。標準入力/標準出力/標準エラーストリームを、TextStreamとして扱えるようにするための機能らしい。
で、早速次のようなスクリプトを書いて実行してみたところ、普通に動いてしまいました。ちなみにWSH5.6@WinXP Home SP2って感じです。
スクリプト

Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.GetStandardStream(1)
ts.writeLine("aaa")

■実行結果

C:\Documents and Settings\hoge\デスクトップ>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

aaa

C:\Documents and Settings\hoge\デスクトップ>

というわけで、日本のMSDNだけ見てる人にとっては、隠し機能みたいなもんですかねぇ(^^;
大分昔に非公開のWin32APIがあるとかで話題になったことがありますけど、そういう感じでバイナリファイル扱う機能もあるといいんですけどね。どうせ運用に載せるようなプログラム書かないし、互換性とか気にしないから。