標準入力を読んで、標準出力と標準エラーに出力します。
JScriptとVBScriptの2通りで。お好みで選んでください。
TeeHJS.CMD
@MSHTA.EXE "javascript:new ActiveXObject('WScript.Shell').SendKeys('%%{tab}');var fso=new ActiveXObject('Scripting.FileSystemObject');var StdIn=fso.GetStandardStream(0);var StdOut=fso.GetStandardStream(1);var StdErr=fso.GetStandardStream(2);while(!StdIn.atEndOfStream){var Char=StdIn.Read(1);StdOut.Write(Char);StdErr.Write(Char);}close();"
TeeVBS.CMD
@MSHTA.EXE vbscript:Execute("CreateObject(""WScript.Shell"").SendKeys ""%%{tab}"":Set fso=CreateObject(""Scripting.FileSystemObject""):Set StdIn=fso.GetStandardStream(0):Set StdOut=fso.GetStandardStream(1):Set StdErr=fso.GetStandardStream(2):Do While Not StdIn.atEndOfStream:Char=StdIn.Read(1):StdOut.Write(Char):StdErr.Write(Char):Loop:close:")
使用法
コマンドプロンプトでは、
MORE | Tee.CMD 2>ファイル | MORE
バッチファイル内では、
MORE | CALL Tee.CMD 2>ファイル | MORE
MORE | MSHTA.EXE ~~~ 2>ファイル | MORE
前後のMOREは、適宜、別のコマンドかリダイレクションに変えてください。
また、こういうバッチファイルの書き方もあります。
TeeHTA.CMD
@MSHTA.EXE "%~f0"
@GOTO :EOF
<script language=vbscript>
Set wShell=CreateObject
(1/2) 次»