<?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>2018-12-25T18:48:28+09:00</dc:date>
    <utime>1545731308</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/2.html" />
                <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/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mashtool/pages/19.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <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>
    <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/www65.atwiki.jp/mashtool/attach/12/3/mashtool_x64_1_0_1.zip]]｜[[32bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/4/mashtool_x86_1_0_1.zip]]　|1.0.1|2017/01/28|CodeUtility/MarshalCodeUtility.Excuteメソッドを省略可能な引数から、オーバーロードに変更。&amp;br()表示内容コピペのために、IEコンポーネントのショートカットキーとコンテキストメニューを有効化。&amp;br()サンプルを本ツールから除外。同時にreadmeから説明を削除。|
|　[[64bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/1/mashtool_x64_1_0_0.zip]]｜[[32bit 版&gt;https://img.atwikiimg.com/www65.atwiki.jp/mashtool/attach/12/2/mashtool_x86_1_0_0.zip]]　|1.0.0|2017/01/27|初版です。|

----
* インストールと実行
ダウンロードした zip ファイルは、必ずウィルスチェックを行ってからインストールしてください。
ダウンロードした zip ファイルを解凍して、ローカルディスクの適当な場所に置いてください。
mash.exe は[[コマンドライン]]から、mashie.exe はダブルクリックで実行します。

zip ファイルの同梱物（64bit 版｜32bit 版 ともに同様）
- &lt;mashtool&gt;
-- readme.txt 　　　　　　　　ご使用前に必ずお読みください。
-- mash.exe 　 　　　　　　　Mash 本体です。（コマンドラインやバッチファイル、他のアプリケーションから使う）
-- mashie.exe　　　　　　　　MashIE 本体です。（ファイルをドラッグ＆ドロップして使う）
-- &lt;ext&gt;　　　 　 　　　　　　MashIE 用の拡張スクリプトを置くフォルダです。
--- csv.cs　　 　　　　　　拡張子 .csv のカンマ区切りを、HTMLのテーブルで出力する、MashIE 用の拡張スクリプトです。
--- tpl.cs　　　 　　　 　　拡張子 .tpl のタグ &lt;% ～ %&gt; を、C#コードとして実行する、MashIE 用の拡張スクリプトです。
- &lt;examples&gt;　　　　　　 　　 　拡張子 .tpl のサンプルです。
-- index.tpl　　　　　　　　 　トップページ（このファイルを MashIE にドラッグ＆ドロップ）
-- header.tpl　　　　　　　 　 ヘッダー（各種 tpl から include される）
-- footer.tpl　　　 　　　　　　フッター（各種 tpl から include される）
-- ExampleClass.cs　　 　　　メッセージボックスを表示する。
-- ExampleSource.cs　　　　　HTML のフォームでスクリプトを手入力して実行する。
-- ExampleParameter.tpl　　 　HTML のフォームやリンクからパラメータを受け取る。
-- ExampleInclude.tpl　 　　 　別の tpl を include して出力結果を受け取る。
-- ExampleIncludeFile.tpl　　　指定ファイルのファイル情報を出力する。（SampleInclude.tpl から include される）
-- ExampleFileInfo.cs　 　 　　指定ファイルのファイル情報を取得する。（SampleIncludeFile.tpl から使用されるクラス）

----
* 動作確認環境
|~環境|~OS|~CPU|~メモリ|
|デスクトップ|Windows 10 Pro 64bit|core i7-3820 3.6GHz|32.0GB|
|SurfacePro3|Windows 10 Pro 64bit|core i5-4300 1.9GHz|4.0GB|

** 重要なお知らせ
- .NET Framework 4 Client Profile を使用しています。
Windows Vista/7/10 であれば Windows Update で勝手にインストールされていると思います。
無い場合は、マクロソフトのサイトからダウンロードしてインストールしてください。

- System.CodeDom.Compiler.CodeDomProvider を使用しています。
.NET Framework 4 Client Profile の機能のひとつです。
これを使ったプログラムが、セキュリティソフトによってはウィルスと認識されることがあります。
その場合は、諦めてください。

- 32bitOS の動作確認環境がありません。
64bitOS での動作確認は行っていますが、32bitOS での動作確認は行っていません。
動かなかったらごめんなさい。




----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </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/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_num2(,num=10,noname)    </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/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, string source, string[] referenceAssemblies, CodeTypes codeType, string className, string methodName, object[] methodArgs, System.Collections.Generic.Dictionary&lt;string, string&gt; providerOptions)
&amp;del(){static object Execute(string fileName, string source = &quot;&quot;, string[] referenceAssemblies = null, CodeTypes codeType = CodeTypes.Auto, string className = &quot;&quot;, string methodName = &quot;&quot;, object[] methodArgs = null)}

スクリプトを実行します。実行されたメソッドの戻り値が返されます。
（1.0.2 providerOptions 追加）
（1.0.1 省略可能な引数からオーバーロードに変更）
|~引数|~説明|
|fileName|実行するソースのファイル名です。&amp;br()source を指定した場合は、ファイルは読み込まれませんが、キャッシュ機構のキーとなるため必須です。|
|source|実行するソースです。&amp;br()省略時は、fileName のファイルが読み込まれます。|
|referenceAssemblies|アセンブリの参照リストです。&amp;br()省略時は、アセンブリの参照を追加しません。&amp;br()ソース中 #pragma link ディレクティブで追加することもできます。|
|codeType|言語の種類です。&amp;br()省略時は、fileName の拡張子により自動判別されます。&amp;br()ソース中 #pragma cs｜vb｜js ディレクティブで指定することもできます。この場合はディレクティブが優先されます。|
|className|実行するクラス名です。&amp;br()省略時は、fileName のファイル名（拡張子除く）となります。|
|methodName|実行するメソッド名です。（※１）&amp;br()省略時は、Main となります。|
|methodArgs|メソッドの引数リストです。&amp;br()省略時は、引数なしとなります。|
|providerOptions|CodeDom のプロバイダオプションを追加します。&amp;br()ソース中 #pragma compiler ディレクティブで追加することもできます。&amp;br()デフォルトで CompilerVersion=v3.5 となっています。|
（※１）実行できるメソッドは static メソッドのみです。

***** ClearCache メソッド
static void ClearCache()
&amp;del(){static void ClearCache(string fileName = &quot;&quot;)}

キャッシュをすべて削除します。
（1.0.2 引数 fileName 廃止）

***** RemoveCache メソッド
static void RemoveCache(string fileName)

キャッシュを削除します。
（1.0.2 追加）
|~引数|~説明|
|fileName|キャッシュを削除するファイル名です。|

**** MarshalCodeUtility クラス
class MarshalCodeUtility

新規のアプリケーションドメインでスクリプトを実行するクラスです。

***** 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, string source, string[] referenceAssemblies, CodeTypes codeType, string className, string methodName, object[] methodArgs, TextWriter twOut, TextWriter twError)
static object Execute(string fileName, string source, string[] referenceAssemblies, CodeTypes codeType, string className, string methodName, object[] methodArgs, TextWriter twOut, TextWriter twError, System.Collections.Generic.Dictionary&lt;string, string&gt; providerOptions)
&amp;del(){static object Execute(string fileName, string source =&quot;&quot;, string[] referenceAssemblies = null, CodeTypes codeType = CodeTypes.Auto, string className = &quot;&quot;, string methodName = &quot;&quot;, object[] methodArgs = null, TextWriter twOut = null, TextWriter twError = null)}

スクリプトを実行します。実行されたメソッドの戻り値が返されます。
（1.0.2 providerOptions 追加）
（1.0.1 省略可能な引数からオーバーロードに変更）
|~引数|~説明|
|fileName|実行するソースのファイル名です。&amp;br()source を指定した場合は、ファイルは読み込まれませんが、キャッシュ機構のキーとなるため必須です。|
|source|実行するソースです。&amp;br()省略時は、fileName のファイルが読み込まれます。|
|referenceAssemblies|アセンブリの参照リストです。&amp;br()省略時は、アセンブリの参照を追加しません。&amp;br()ソース中 #pragma link ディレクティブで追加することもできます。|
|codeType|言語の種類です。&amp;br()省略時は、fileName の拡張子により自動判別されます。&amp;br()ソース中 #pragma cs｜vb｜js ディレクティブで指定することもできます。この場合はディレクティブが優先されます。|
|className|実行するクラス名です。&amp;br()省略時は、fileName のファイル名（拡張子除く）となります。|
|methodName|実行するメソッド名です。（※１）&amp;br()省略時は、Main となります。|
|methodArgs|メソッドの引数リストです。&amp;br()省略時は、引数なしとなります。|
|twOut|標準出力を受け取るストリームです。（※２）&amp;br()省略時は、受け取りません。|
|twError|標準エラーを受け取るストリームです。（※２）&amp;br()省略時は、受け取りません。|
|providerOptions|CodeDom のプロバイダオプションを追加します。&amp;br()ソース中 #pragma compiler ディレクティブで追加することもできます。&amp;br()デフォルトで CompilerVersion=v3.5 となっています。|
（※１）実行できるメソッドは static メソッドのみです。
（※２）MarshalCodeUtility では、実行されるスクリプトのアプリケーションドメインが異なるため、スクリプトから出力された標準出力・標準エラーを、呼び出し元から取得できません。ストリームを渡すことで標準出力・標準エラーを受け取ることができます。

***** ClearCache メソッド
static void ClearCache()
&amp;del(){static void ClearCache(string fileName = &quot;&quot;)}

キャッシュをすべて削除します。
（1.0.2 引数 fileName 廃止）

***** RemoveCache メソッド
static void RemoveCache(string fileName)

キャッシュを削除します。
（1.0.2 追加）
|~引数|~説明|
|fileName|キャッシュを削除するファイル名です。|

**** CodeException クラス
class CodeException / 継承 Exception

コンパイルエラーがある場合に発行される例外です。
|~フィールド|~説明|
|CodeErrorCollection errors|コンパイルエラーのコレクションです。|

**** CodeErrorCollection クラス
class CodeErrorCollection

コンパイルエラーのコレクションです。
|~フィールド|~説明|
|System.Collections.Generic.List&lt;CodeError&gt; items|コンパイルエラーのリストです。|

**** CodeError クラス
class CodeError

コンパイルエラーです。
|~フィールド|~説明|
|string fileName|ファイル名です。|
|string message|メッセージです。|
|string no|№です。|
|int line|行番号です。|
|int column|桁番号です。|
|bool isWarning|警告かどうかです。|

**** CodeTypes 列挙定数
enum CodeTypes / 継承 byte

言語の種類です。
|~定数|~説明|
|CSharp     |言語を C# とします。|
|VisualBasic|言語を Visual Basic とします。|
|JScript    |言語を JScript とします。|
|Auto       |ファイル名の拡張子により自動判別されます。|




----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </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/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/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
ファイルの内容に message を文字列（Json形式）として挿入します。
System.Collections.Hashtable と System.Collections.ArrayList のみ展開されます。
void print_r ( object message )
|~引数|~説明|
|message|メッセージ|

*** 組み込み関数 include
別のファイルの出力結果を文字列で取得します。
出力には tpl 拡張スクリプトが使用されます。
string include ( string fileName )
string include ( string fileName , System.Collections.Hashtable args )
|~引数|~説明|
|fileName|別のファイル名|
|args|任意のパラメーター|




----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </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/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()引数[0]：mashie.exe のファイル名&amp;br()引数[1]：拡張スクリプトのファイル名&amp;br()引数[2]：Drag&amp;Drop または HTML のリンクやフォームで指定されたファイル名&amp;br()引数[3～]：HTML のリンクやフォームから渡されたパラメーター|
|戻り値|無視されます。|

----
** HTML を使用する
HTML のリンクやフォームでファイルを指定したときも、Drag&amp;Drop と同様の動作となります。
HTML のリンクやフォームのパラメーターは、スクリプト実行時の引数として渡されます。
引数として渡される内容は、「名前=値」を 1 個の string 型として、パラメーターの数だけ配列で渡されます。

引数として渡されるフォームの内容
|~タグ|~取得される属性|
|formタグ|name=空文字列|
|inputタグ（type：text｜hidden｜file）|name=value|
|inputタグ（type：checkbox｜radio）|name=value&amp;br()選択されているものすべて渡されます。|
|inputタグ（type：submit｜image）|name=value|
|buttonタグ（type：submit）|name=value|
|textareaタグ|name=value|
|selectタグ|name=option タグの value &amp;br()選択されているものすべて渡されます。|




----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </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/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[]      |value を int    配列型としてメソッドに引き渡します。|
|-ui   ｜--uint       |value を uint   型としてメソッドに引き渡します。|
|-ui[] ｜--uint[]     |value を uint   配列型としてメソッドに引き渡します。|
|-l    ｜--long       |value を long   型としてメソッドに引き渡します。|
|-l[]  ｜--long[]     |value を long   配列型としてメソッドに引き渡します。|
|-ul   ｜--ulong      |value を ulong  型としてメソッドに引き渡します。|
|-ul[] ｜--ulong[]    |value を ulong  配列型としてメソッドに引き渡します。|
|-f    ｜--float      |value を float  型としてメソッドに引き渡します。|
|-f[]  ｜--float[]    |value を float  配列型としてメソッドに引き渡します。|
|-d    ｜--double     |value を double 型としてメソッドに引き渡します。|
|-d[]  ｜--double[]   |value を double 配列型としてメソッドに引き渡します。|
|-b    ｜--bool       |value を bool   型としてメソッドに引き渡します。|
|-b[]  ｜--bool[]     |value を bool   配列型としてメソッドに引き渡します。|
|-st   ｜--string     |value を string 型としてメソッドに引き渡します。|
|-st[] ｜--string[]   |value を string 配列型としてメソッドに引き渡します。|
|-cs   ｜--csharp     |言語を C# とします。|
|-vb   ｜--visualbasic|言語を Visual Basic とします。|
|-js   ｜--jscript    |言語を JScript とします。|
|-mr   ｜--marshal    |新規のアプリケーションドメインで実行します。&amp;br()省略時は既定のアプリケーションドメインで実行します。|
|-h    ｜--help       |起動引数を表示します。|
（※１）args は stiring 配列型の1個の引数として渡され、 sbuilfdbtオプションは各々が引数として渡されます。
（※２）実行できるメソッドは static メソッドのみです。

----
** 終了コード
mash.exe の終了コードです。
|h オプション使用時|終了コードは -1 になります。|
|正常実行時|メソッドの戻り値が int 型の場合は、戻り値がそのまま終了コードになります。&amp;br()メソッドの戻り値が int 型でない場合は、終了コードは 0 になります。|
|例外発生時|例外の内容が標準エラーに出力され、終了コードは -1 になります。 |




----
** ご意見・ご要望など
コメントは最新の10件分だけ表示されます。
#comment_num2(,num=10,noname)    </description>
    <dc:date>2017-01-26T19:12:52+09:00</dc:date>
    <utime>1485425572</utime>
  </item>
  </rdf:RDF>
