コネタ+小物シェル ― 2007年05月10日 21時30分20秒
WSH オブジェクト
dara-j自身は最近まで知らなかったが、JScriptにて次の評価が true を返す。
WSH === WScriptようするに、WScript.Argumentsだのと記述するときにちょっとだけタイプ量を減らせるっちゅーことですな。
ついでにシェル環境
っていうのかな。コンソールでスクリプト入力して即評価するっつーよくあるやつです。
いずれもっと高機能なやつを考えてるけど、これはこれでコンパクトなので公開。
ソースはこれだけ。
if( /wscript\.exe/i.test( WSH.FullName ) ) { new ActiveXObject( "WScript.Shell" ).Run( "cmd /k cscript //nologo \"" + WSH.ScriptFullName + "\"" ); WSH.Quit(); } // ↓これ、いらないじゃん(07.5.10 23:46) //function print() { // var a = []; // for( var i = 0; i < args.length; i++ ) a.push( arguments[ i ] ); // WSH.Echo( a ); //} with( { $_A : function( args ) { var a = []; for( var i = 0; i < args.length; i++ ) a.push( args[ i ] ); return a; }, _p : "js>", _print : function() { var a = arguments; for( var i = 0; i < a.length; i++ ) WSH.StdOut.Write( a[ i ] ); }, _in : "", print : function() { WSH.Echo( this.$_A( arguments ).join( "" ) ); }, read : function(m) { if( m ) this._print( m ); return WSH.StdIn.ReadLine(); } } ) { while( ( _in = read( _p ) ) != "exit" ) { try { print( eval( _in ) ); } catch( e ) { print( e.description ); } } }特に機能はなくて、せいぜいが
- print()関数がある。引数リストはすべて連結される。ex. print(1,2,3)// 123
- exitステートメント(?)で終了
追記:ああ、print()関数は保護されないや、よく見たら。
さらに追記:うあ、グローバルな定義のprint()関数、いらないじゃん。てことでコメントアウト。
最近のコメント