<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/mashtool/">
    <title>Mash まとめwiki</title>
    <link>http://w.atwiki.jp/mashtool/</link>
    <atom:link href="https://w.atwiki.jp/mashtool/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Mash まとめwiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2017-01-27T02:34:24+09:00</dc:date>
    <utime>1485452064</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/1.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/22.html">
    <title>.tpl 拡張スクリプト</title>
    <link>https://w.atwiki.jp/mashtool/pages/22.html</link>
    <description>
      * .tpl 拡張スクリプト
[[ダウンロード]]に同梱されている [[MashIE]] 用の拡張スクリプトです。
拡張子「.tpl」のファイルを Drag&amp;Drop またはリンクやフォームから指定されたときに実行されます。

#contents(,fromhere=true)

----
** 概要
ファイルを読み込み、タグ &lt;% ～ %&gt; 内を C# として実行し、標準出力します。
タグ &lt;% ～ %&gt; 内の C# から組み込み関数 print を使用すると、ファイルの内容に print した内容が挿入されます。
これにより、ファイルの内容を動的に変更できます。
※PHP の Smarty テンプレートを、C# で書くようなイメージです。

----
** 構文

*** タグ &lt;% statement %&gt;
statement が C# の「文」として実行されます。
文なので、文末にセミコロンが必要です。

*** タグ &lt;%$ expression %&gt;
expression が C# の「式」として実行され、ファイルの内容に挿入されます。
式なので、文末のセミコロンは不要です。
&lt;% print ( expression ) ; %&gt; と等価です。

*** 組み込み変数
|~変数|~説明|
|string __MASHIE__|mashie.exe のファイル名|
|string __PLUGIN__|拡張スクリプトのファイル名|
|string __FILE__|tpl のファイル名|
|System.Collections.Hashtable _IN|リンクやフォーム、または組み込み関数 include から渡されたパラメーター|
|System.Text.StringBuilder _OUT|最終的に標準出力する内容&amp;br()組み込み関数 print / print_r から出力された内容が蓄積されます。|

*** 組み込み関数 print
ファイルの内容に message を文字列として挿入します。
void print ( object message )
|~引数|~説明|
|message|メッセージ|

*** 組み込み関数 print_r
ファイルの内容に    </description>
    <dc:date>2017-01-27T02:34:24+09:00</dc:date>
    <utime>1485452064</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/21.html">
    <title>.csv 拡張スクリプト</title>
    <link>https://w.atwiki.jp/mashtool/pages/21.html</link>
    <description>
      * .csv 拡張スクリプト
[[ダウンロード]]に同梱されている [[MashIE]] 用の拡張スクリプトです。
拡張子「.csv」のファイルを Drag&amp;Drop またはリンクやフォームから指定されたときに実行されます。

#contents(,fromhere=true)

----
** 概要
ファイルを読み込み、カンマ区切りを、HTML の テーブルとして標準出力します。
※エスケープ処理など行っていません。拡張スクリプトを作るときの参考にどうぞ。




----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </description>
    <dc:date>2017-01-27T00:13:42+09:00</dc:date>
    <utime>1485443622</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/19.html">
    <title>コマンドライン</title>
    <link>https://w.atwiki.jp/mashtool/pages/19.html</link>
    <description>
      * コマンドライン
コマンドラインやバッチファイルなどから、ファイル名とオプションを指定してスクリプトを実行します。

#contents(,fromhere=true)

----
** オプション
usage: mash.exe file [args...] [-cm name] [-sbuilfdbt[] value] [-cs|vb|js] [-mr] [-h]
|~オプション|~説明|
|file|実行するファイル名です。|
|args|複数（空白区切り）の arg を string 配列型としてメソッドに引き渡します。&amp;br()sbuilfdbt[]オプションを使用する場合は args は無視されます。（※１）|
|-c    ｜--class      |実行するクラス名 name を指定します。&amp;br()省略時はファイル名（拡張子除く）です。|
|-m    ｜--method     |実行するメソッド名 name を指定します。（※２）&amp;br()省略時は Main です。|
|-b    ｜--byte       |value を byte   型としてメソッドに引き渡します。|
|-b[]  ｜--byte[]     |value を byte   配列型としてメソッドに引き渡します。|
|-sb   ｜--sbyte      |value を sbyte  型としてメソッドに引き渡します。|
|-sb[] ｜--sbyte[]    |value を sbyte  配列型としてメソッドに引き渡します。|
|-s    ｜--short      |value を short  型としてメソッドに引き渡します。|
|-s[]  ｜--short[]    |value を short  配列型としてメソッドに引き渡します。|
|-us   ｜--ushort     |value を ushort 型としてメソッドに引き渡します。|
|-us[] ｜--ushort[]   |value を ushort 配列型としてメソッドに引き渡します。|
|-i    ｜--int        |value を int    型としてメソッドに引き渡します。|
|-i[]  ｜--int[]          </description>
    <dc:date>2017-01-26T19:12:52+09:00</dc:date>
    <utime>1485425572</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/18.html">
    <title>クラスライブラリー</title>
    <link>https://w.atwiki.jp/mashtool/pages/18.html</link>
    <description>
      * クラスライブラリー
mash.exe を DLL として参照することで、他のアプリケーションからスクリプトを実行できます。

#contents(,fromhere=true)

----
** リファレンス
*** mash 名前空間
namespace mash

**** CodeUtility クラス
class CodeUtility

既定のアプリケーションドメインでスクリプトを実行するクラスです。

***** Execute メソッド
static object Execute(string fileName)
static object Execute(string fileName, string source)
static object Execute(string fileName, string source, string[] referenceAssemblies)
static object Execute(string fileName, string source, string[] referenceAssemblies, CodeTypes codeType)
static object Execute(string fileName, string source, string[] referenceAssemblies, CodeTypes codeType, string className)
static object Execute(string fileName, string source, string[] referenceAssemblies, CodeTypes codeType, string className, string methodName)
static object Execute(string fileName, string source, string[] referenceAssemblies, CodeTypes codeType, string className, string methodName, object[] methodArgs)
static object Execute(string fileName, st    </description>
    <dc:date>2017-01-30T13:29:24+09:00</dc:date>
    <utime>1485750564</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/14.html">
    <title>MashIE</title>
    <link>https://w.atwiki.jp/mashtool/pages/14.html</link>
    <description>
      * MashIE (Managed Again Shell with IE)
スクリプトをウィンドウに Drag&amp;Drop すると実行し、標準出力の内容が表示されます。
スクリプトの実行には mash.exe が利用されており、言語仕様は [[Mash]] に準じます。
表示部分には IE コンポーネントが利用されており、標準出力の内容はウェブページとして表示されます。

#contents(,fromhere=true)

----
** 使用方法
ファイルをウィンドウに Drag&amp;Drop すると、ファイルの拡張子に応じて動作します。

*** スクリプトファイル（.cs｜vb｜js）のとき
スクリプトを実行し、標準出力の内容が表示されます。

スクリプトの仕様
|クラス名|class スクリプトのファイル名（拡張子除く）|
|メソッド名|static void Main ( string 配列型 )&amp;br()引数[0]：mashie.exe のファイル名&amp;br()引数[1]：スクリプトのファイル名&amp;br()引数[2～]：HTML のリンクやフォームから渡されたパラメーター|
|戻り値|無視されます。|

*** 一般ファイル（.txtなど）のとき
テキストファイル（.txt）の場合は、テキストが表示されます。
画像ファイル（.png）の場合は、画像が表示されます。
HTMLファイル（.html）の場合は、ウェブページが表示されます。
これらの一般ファイルは IE コンポーネントの既定の動作に委ねられます。

*** 独自の動作を行いたいとき
拡張スクリプトを使用することで IE コンポーネントの既定の動作を行わず、一般ファイルを独自に処理できます。
拡張スクリプトを使用するには、ext フォルダに拡張子と同名のスクリプトを置くだけです。

拡張スクリプトの仕様
|ファイル名|拡張子の名前.cs&amp;br()または拡張子の名前.vb&amp;br()または拡張子の名前.js&amp;br()同名の拡張スクリプトがある場合は cs → vb → js の順で先に見つけた方が優先されます。|
|クラス名|class 拡張子の名前|
|メソッド名|static void Main ( string 配列型 )&amp;br()引数[    </description>
    <dc:date>2017-01-26T23:31:22+09:00</dc:date>
    <utime>1485441082</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/13.html">
    <title>Mash</title>
    <link>https://w.atwiki.jp/mashtool/pages/13.html</link>
    <description>
      * Mash (Managed Again Shell)
[[コマンドライン]]やバッチファイルなどから、ファイル名とオプションを指定してスクリプトを実行します。
また mash.exe を DLL として参照することで、他のアプリケーションからスクリプトを実行できます。

#contents(,fromhere=true)

----
** 言語仕様
Mash は構文解析やIL生成などを独自に行っていません。
ディレクティブ行のみを取り出し、コンパイルはすべて .NET Framework に委ねています。
ディレクティブ行を除き Visual Studio でコンパイルできる C# / Visual Basic / JScript の基本的な言語仕様に準じます。

*** 特殊なディレクティブ
Mash で使用可能なディレクティブです。
（1.0.2 #pragma compiler 追加）

|~構文|~説明|
|#pragma cs|言語を C# としてコンパイルします。（※１）|
|#pragma vb|言語を Visual Basic としてコンパイルします。（※１）|
|#pragma js|言語を JScript としてコンパイルします。（※１）|
|#pragma import &quot;path&quot;|別のソースファイル path を含めてコンパイルします。&amp;br()ソースが複数に分かれているときなどに使用します。&amp;br()※import するファイルは、言語が一緒でなければいけません。|
|#pragma link &quot;path&quot;|アセンブリの参照として path を追加します。&amp;br()外部の DLL を参照するときなどに使用します。|
|#pragma compiler &quot;key=value&quot;|CodeDomプロバイダオプションとして、項目 key と値 value を追加します。&amp;br()デフォルトで CompilerVersion=v3.5 となっています。|
（※１）コマンドラインや[[クラスライブラリー]]から言語を指定できますが、ソース中に記述されるディレクティブが優先されます。



----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_n    </description>
    <dc:date>2017-01-30T13:36:40+09:00</dc:date>
    <utime>1485751000</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/12.html">
    <title>ダウンロード</title>
    <link>https://w.atwiki.jp/mashtool/pages/12.html</link>
    <description>
      * ダウンロード
readme.txtを必ず読んでからお楽しみください。
|~リンク|~version|~更新日|~更新内容|
|　[[64bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/8/mashtool_x64_1_0_4.zip]]｜[[32bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/7/mashtool_x86_1_0_4.zip]]　|1.0.4（最新版）|2018/12/26|EXE/お気に入り登録アイコンを変更。&amp;br()お気に入りツールバーを追加。&amp;br()標準出力と標準エラー/例外の表示領域を分離。&amp;br()スクリプト内部で例外が発生したときにスタックトレースが正常に取得されていなかった問題を改修。|
|　[[64bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/5/mashtool_x64_1_0_2.zip]]｜[[32bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/6/mashtool_x86_1_0_2.zip]]　|1.0.2|2017/01/30|CodeDomプロバイダオプションを指定できるように変更。デフォルトはCompilerVersion=v3.5とする。&amp;br()CodeUtility/MarshalCodeUtility.Excuteメソッドに、CodeDomプロバイダオプションの引数を追加。&amp;br()#pragma compiler &quot;キー=値&quot; ディレクティブを追加。キー=値でCodeDomプロバイダオプションを追加。値を省略すると削除。&amp;br()ExsampleSouce.tplでVB/JSの定義文が分離されていなかった不具合を改修。&amp;br()CodeUtility/MarshalCodeUtility.ClearCacheメソッドの引数を廃止。RemoveCacheメソッドを追加。|
|　[[64bit 版&gt;https://img.atwikiimg.com/www    </description>
    <dc:date>2018-12-25T18:43:24+09:00</dc:date>
    <utime>1545731004</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/mashtool/pages/2.html</link>
    <description>
      ** メニュー
- [[トップページ]]
- [[ダウンロード]]
- [[Mash]]
-- [[コマンドライン]]
-- [[クラスライブラリー]]
- [[MashIE]]
-- [[.csv 拡張スクリプト]]
-- [[.tpl 拡張スクリプト]]
----
#twitter_widget3(){&lt;a class=&quot;twitter-timeline&quot; data-width=&quot;200&quot; data-height=&quot;400&quot; data-theme=&quot;light&quot; href=&quot;https://twitter.com/non_or2&quot;&gt;Tweets by non_or2&lt;/a&gt; &lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;}
----
** 更新履歴
#recent(20)

----
&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2017-01-29T01:29:09+09:00</dc:date>
    <utime>1485620949</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mashtool/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/mashtool/pages/1.html</link>
    <description>
      * Mash まとめwiki
----
Mash は、C# / Visual Basic / JScript で記述されたスクリプトを実行する、開発者向けのツールです。
コマンドライン版の [[Mash]] と、ウィンドウ版の [[MashIE]] があります。

- 最新版は version 1.0.4 です。 → [[ダウンロード]]


----
** 主な用途
[[Mash]] および [[MashIE]] は、サポートツール製作の手助けとなります。

サポートツールとは・・・
+ プランナーが Excel で作ったゲームデータを、バイナリデータに変換するツール
+ エンジニアが Excel で作ったデータベース定義書から、SQL文を作成するツール
+ デザイナーが Maya で作った fbx データから、シーン情報を取り出すツール
+ 出来上がったゲームデータを、リソースサーバーにアップロードするツール
などなど、プログラマーが作るべきこれら「サポートツール」は数多くあります。
作るにしても Visual Studio はライセンス的に厳しい、cygwin + bash はダルい、vbs は今更感・・・と、悩みもまた多くあります。

[[MashIE]] では IE コンポーネントを利用しており、GUI を HTML で作成できます。
HTML からスクリプトを実行でき、またスクリプト言語は .NET なのでとても手軽です。
たとえば、メニューを HTML で作成し、リンクやフォームからスクリプトを実行するだけで、統合ツールの完成です。




----
** ご感想など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </description>
    <dc:date>2018-12-25T18:48:28+09:00</dc:date>
    <utime>1545731308</utime>
  </item>
  </rdf:RDF>
