{{category "Windows Script Host (WSH)",nolink}}Windows上でスクリプトを実行 !!!Windows Script Host *Windows Script Host **http://www.microsoft.com/japan/msdn/scripting/ *Windows Script Host ドキュメント **http://msdn.microsoft.com/ja-jp/library/cc364455.aspx *Windows Script Host リファレンス **http://msdn.microsoft.com/ja-jp/library/cc364460.aspx !!対応言語 ,言語名 ,スクリプト言語 ,使うためには ,JScript ,Microsoft JScript (*1) ,WSH標準 ,VBScript ,Visual Basic Script ,WSH標準 ,PerlScript ,Perl ,[ActivePerl|http://www.activestate.com/Products/ActivePerl/] を導入 ,Python ,Python ,[ActivePython|http://www.activestate.com/Products/ActivePython/] を導入 ,RubyScript ,Ruby ,[ActiveScriptRuby|http://www.geocities.jp/artonx/ruby/] を導入 ,PHPScript ,PHP ,[PHP Manual|http://php.mirror.camelnetwork.com/manual/ja/index.php] - [ActiveScript|http://php.mirror.camelnetwork.com/manual/ja/install.windows.activescript.php]を参照 注1:Microsoft版 JavaScript (ECMAScript実装) !!!WSHで利用可能な基本オブジェクト ,オブジェクト名 ,概要 ,WScript ,WSHのルートオブジェクト。ホスト情報、スクリプトへの引数情報をはじめ、オブジェクトの生成や破棄などの役割を提供 ,WshArguments ,スクリプトに渡された引数情報にアクセスする手段を提供 ,WshController ,リモートコンピュータにあるスクリプトを実行するための機能を提供 ,WshEnvironment ,システム環境変数にアクセスする手段を提供 ,WshNetwork ,共有プリンタ/共有ドライブへのアクセス手段を提供 ,WshShell ,アプリケーションの実行からレジストリへのアクセス、ショートカット作成など、Windowsシェルに関わるさまざまな機能へのアクセス手段を提供 ,WshShortcut ,ショートカットを操作するための手段を提供 ,WshSpecialFolders ,特殊フォルダへのアクセス手段を提供 ,WshUrlShortcut ,インターネットリソースへのショートカットを操作するための手段を提供 ,FileSystemObject ,ファイルシステムへのアクセスからテキストファイルへの読み書きの手段を提供 !!!スクリプトを読みづらくする 一見読みづらくなるだけで、完全に読まれないようになるわけではないので注意。 !!Script Encoder で符号化する [Windows Script Encoder|http://www.microsoft.com/downloads/details.aspx?FamilyID=2976ee94-bec5-4314-84fd-8d7ec891c1c5&displaylang=ja] を使用することでスクリプトをエンコードすることが出来る。 これによってコードをそのまま表示することを防ぐことが出来る。また、エンコードされたテキストを変更するとスクリプト全体の整合性が失われるので改変も防ぐことができる。 ただし、エンコードしたスクリプトはデコードすることが可能。さらに、日本語(などの2バイト文字)はエンコードされない。 *関連:[[Script/WSHEncoder]] !!スクリプトを実行ファイル形式にする iexpress などの自己解凍書庫を作成するツールを使い、スクリプトファイルを入れた自己解凍の書庫を作成。 解凍時に実行するプログラム(インストーラ)の指定でスクリプトファイルを指定する。 解凍先を指定出来る場合はテンポラリ(%TEMP%)へ、インストーラ実行ご削除出来るなら削除する様にする。 見た目は実行ファイル、でも動くのはスクリプト、と言った感じで誤魔化すことが出来る。 もっとも、自己解凍書庫なのでツールで中のスクリプトを取り出し見ることが出来る。 *関連:[[Win32/IExpress]] !!!WSH (Windows Scripting Host) Console ちょっとした動作の確認とかに便利な対話型で逐次実行するスクリプトコンソール。 id:Mug さんのはてなダイアリー [新しいJavaScriptの使い方を考える|http://d.hatena.ne.jp/Mug/] の [JScriptコンソールを進化させてWSHコンソールに|http://d.hatena.ne.jp/Mug/20070221/1172076477]。 JScript とおまけで VBScript も。 Ruby は標準で、irb というツールがある。Perl は、Perl デバッガ (perl -d -e 1) か、pirl(Shell::Perl) や perlsh(Term::ReadLine::Gnu) と言うの(モジュール)があるのでそれを利用。Python と PHP はあるのかな…。 !!私製 WSH Console id:Mug さんのを自分用にちょっと手直し。かといって、そんなに使いこなしてるわけじゃないですけど。 主な変更点はこんな感じ *wsf からの起動時に、JSとVBSのどちらかを起動するか選択できるように変更 *vbs からも単独起動出来るように処理追加 *js,vbs 共に同じ拡張機能を追加(主にvbs)、ヘルプ表示も **echo : プロンプトの表示/非表示設定 **rompt : プロンプト文字の設定 **history : コマンド履歴の表示 **cmd : DOSコマンドの実行 *js にあった リダイレクトに代わる機能を削除 *wsf にあった write, writeln, print のユーティリティ関数を削除 *起動用のNTコマンドスクリプトを同梱 ■ダウンロード: {{ref WshConsole.zip}} (ただいま削除中) //MD5:A4F70939F468C139B32595B3E185B496 //SHA1:4674F93A84741CA3F3529E5B571252A2A575476D *同梱している original.zip は、オリジナルとなる id:Mug さんのものです。 *営利・非営利問わず自由に利用してください。 *営利・非営利問わず配布、雑誌・書籍への収録や添付はお断り致します。 *<<中身を確認の上、実行してください。>> !!!jQuery on WSH WSH で jQuery を使う。 *[plasticgrammer|http://d.hatena.ne.jp/plasticgrammer/] の [jQuery on WSH テスト|http://d.hatena.ne.jp/plasticgrammer/20090212/1234623312] *[葉っぱ日記|http://d.hatena.ne.jp/hasegawayosuke/] の [Using jQuery on WSH|http://d.hatena.ne.jp/hasegawayosuke/20090928/p1]、[Using jQuery.ajax on WSH with async:true|http://d.hatena.ne.jp/hasegawayosuke/20090929/p1]、[Using setInterval / setTimeout on WSH|http://d.hatena.ne.jp/hasegawayosuke/20090930/p1] !!私製 WSH jQuery Test plasticgrammer さんのをベースに 葉っぱ日記 さんのを加えて自分用にちょっと手直し。 *Windows Script File (wsf) を使用 *偽 window、偽 document を準備するコードを用意 **setInterval, setTimeout のラッパ関数も作成 *jQuery の読み込みを「