2016-08-24 29 views
0

我有一個C#控制檯程序,我想運行PowerShell命令不是腳本,但無論我嘗試在PowerShell的運行空間運行的什麼命令,它得到一個錯誤說cmdlet的不找到。它可以是如下簡單:在C#中的錯誤cmdlet的運行基本PowerShell命令沒有找到

static void Main(string[] args) 
{ 
    try 
    { 
     using (Runspace runspace = RunspaceFactory.CreateRunspace()) 
     { 
      runspace.Open(); 
      PowerShell ps = PowerShell.Create(); 
      ps.Runspace = runspace; 
      ps.AddCommand("(Get-Date).AddDays(1)"); 
      var result = ps.Invoke(); 

      Console.WriteLine(result); 
     } 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine("Error: " + ex.ToString()); 
    } 
} 

我可以在powershell命令行鍵入此命令,它運行得很好。我沒有添加任何模塊來運行它。我錯過了什麼?

回答

4

的命令是Get-Date獨自一人,當你使用AddCommand這就是它的期望。例如

ps.AddCommand("Get-Date").AddParameter("Format", "u").Invoke(); 

https://msdn.microsoft.com/en-us/library/dd182430(v=vs.85).aspx

你有什麼是腳本,不容易融入AddCommand(因爲它不是一個),請嘗試AddScript代替:

ps.AddScript("(Get-Date).AddDays(1)").Invoke(); 
+0

如果我想要什麼到存儲結果的變量? –

+0

作爲其存儲在您的課嗎?您還可以分配從調用返回的()爲您在原始所做的,我只是簡化了一點的例子的緣故。 –

相關問題