注意
実用性は不明です。
方法
バッチファイル内にPowerShellスクリプトを書くことができます。
(参考 : バッチファイルから PowerShell を呼び出す方法 )
PowerShellスクリプト内にC#プログラムを書くことができます。
(参考 : PowerShellメモ C#コードを実行 )
組み合わせると、
バッチファイル内にC#コードを書くことができます。
サンプル
以下をバッチファイル "hello.bat" に保存して、"hello.bat 1" を実行すると、"hello 1 world" が2行表示されます。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
# http://qiita.com/cd01/items/82829ba0ec0f59e1b04d
# http://qiita.com/Kosen-amai/items/d68b9590c9e8e8b06377
Param($argBat)
$src = @'
using System;
public static class HelloClass
{
public static string HelloMethod(string arg)
{
string msg = "hello " + arg + " world";
Console.WriteLine(msg);
return msg;
}
}
'@
Add-Type -TypeDefinition $src -Language CSharp
$helloResult = [HelloClass]::HelloMethod($argBat)
Write-Output -InputObject $helloResult
exit 0