2016-12-28 49 views
1

我一直在使用Otter腳本,現在我想直接從我的一個計劃中執行C#代碼。我知道我可以直接使用PSExec執行PowerShell代碼,但有沒有像C#一樣的CSExec或類似的?直接從Otter腳本執行C#代碼

下面是代碼我想運行:

if (Directory.Exists($Path)) 
    LonUtil.SendEmail("Path exists!"); 
else 
    LonUtil.SendEmail("Path does not exist.", false); 

回答

1

你可以從那裏使用PSExec直接創建PowerShell中的一個新的類型,並調用代碼:

$source = @" 
public class MyCode 
{ 
    public void Action(string path) 
    { 
     System.Console.WriteLine(path); 
    } 
} 
"@ 

Add-Type -TypeDefinition $source 
$MyCode = New-Object MyCode 
$MyCode.Action("Write this to the console!") 

Alternatvely ,將該C#代碼編譯成程序集,例如MyApplication.exe,然後編寫一個執行該程序的powershell腳本:

$path = "the/required/path" 
& MyApplication.exe $path 

然後使用PSExec從奧特腳本來運行PowerShell的

+1

嗯以上位,編譯到一個EXE可能是矯枉過正。更直接的等價物就像[scriptcs](http://scriptcs.net/)。 – mason

+0

@mason我在頂部添加了一個備用解決方案 – Bassie

+1

我的另一個選擇是爲它創建一個exe文件,並使用'Exec'來代替自定義的PowerShell,但是'Add-Type'命令現在可以使用,謝謝! –