Skip to main content

スクリプトを実行する

スクリプトのコードを実行する

IApplicationオブジェクトのExecuteScriptCodeメソッドを用いて、C#言語のスクリプトを実行できます。

public void ExecuteScriptCode(ICommandContext c, ICommandParams p)
{
var script = @"
var currentProject = CurrentProject;
if ( currentProject == null ) return;
App.Output.WriteLine(""sample"",currentProject.Name);";

// スクリプトを実行します
c.App.ExecuteScriptCode(script,"cs");
}

スクリプトの戻り値は、スクリプトのreturn文の結果オブジェクトを返します。スクリプトにreturn文がない場合は null を返します。

public void ExecuteScriptCode(ICommandContext c, ICommandParams p)
{
var script = @"return CurrentProject.?Name";

// スクリプトを実行します
var result = c.App.ExecuteScriptCode(script, "cs");
if (result == null) result = "(null)";

c.App.Output.WriteLine("sample", result.ToString());
}

スクリプトファイルを実行する

IApplicationオブジェクトのExecuteScriptメソッドで指定されたスクリプトファイルを読み込んで実行します。

public void ExecuteScript(ICommandContext c, ICommandParams p)
{
// スクリプトファイルの絶対パスです
var scriptFilePath = "c:/data/myscript.cs";

// スクリプトを実行します
c.App.ExecuteScript(scriptFilePath);
}

スクリプトにパラメータを渡す

スクリプトにはパラメータを渡すことができます。

public void ExecuteScript(ICommandContext c, ICommandParams p)
{
IScriptParams scriptParams = c.App.CreateScriptParams();
scriptParams.AddParamWithName("modelName", "ABC");
scriptParams.AddParamWithName("close", true);

// スクリプトを実行します
c.App.ExecuteScript("c:/data/myscript.cs", scriptParams);
}

スクリプト側では次のようにParamsオブジェクトでパラメータを処理できます。

var modelName = Params["modelName"];
var close = (bool)Params["close"];

//...