2008年11月27日木曜日

PolymorphicScript

1つのスクリプトに複数の言語を混在させているものをこう名付ける。

例)Windows CMDファイルにJscriptを内包する
 両者で文法エラーにならず、片方は読み飛ばせる文を使用する。

1)CMD:変数の設定文 JScript:環境変数の設定+ブロックコメントの開始
@set @_=1/*
CScript.exe //NoLogo //E:JScript "&~f0" %*
GOTO :EOF
*/

2)CMD:1行IF文 JScript:ifマクロで、@endまでスキップ
@if(0)==(0) ECHO oFF
CScript.exe //NoLogo //E:JScript "&~f0" %*
GOTO :EOF
@end

*JScriptでは、このように解釈され、if(0)はfalseなので文法チェックされない
@if(0)
==(0) ECHO OFF
...
@end

* "%~f0" は実行したファイルパスそのものを指す

参考:
それはそれ。これはこれ。:[CMD]WSHスクリプトのBATスクリプトへの組み込み(前編)

Windows Script Programming:バッチファイルで現在や親のプロセスIDを調べる。

0 件のコメント: