2015-10-13 4 views
0

Эй, ребята, я новичок на C#. Я знаю powershell. Я пытаюсь понять, как запустить скрипт powershell из программы C#. У меня есть ниже, как тестовая программа для себя. Однако, когда я пытаюсь добавить более сложные скрипты, которые могут включать в себя окна графического интерфейса, которые должны появляться, кажется, что ничего не работает. Неужели я на правильном пути, чтобы понять это? Я также заметил, что для каждого скрипта в C# нужно было использовать полуколону после каждой строки.Запуск powershell от C#

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Management.Automation; 
using System.Management.Automation.Runspaces; 
using System.Collections.ObjectModel; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 


      using (PowerShell PS = PowerShell.Create()) 
      { 
       PS.AddScript("$file = \"C:\\test\\csharp.txt\";"+ 
       "Set-Content -path $file -value \"testc\";"); 
       PS.Invoke(); 
      } 



     }//end of main 
}//end of class 
}//end of namespace 
+0

Здесь есть хороший учебник: http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C – Icemanind

+0

спасибо, что я читал эту страницу раньше – Peter3

ответ

0

Только пользовательский интерфейс может выполнять операции пользовательского интерфейса. Из того, что я вижу, ваш PS.Invoke() создает свой собственный поток, и я не нахожу ничего, что позволило бы вам продвигать его в поток пользовательского интерфейса.

+0

ok, поэтому я не мог " t использовать какой-либо пользовательский интерфейс в powershell? мне пришлось бы переплетать его с C# gui? – Peter3

+0

Да, я думаю, что это обычный образ жизни людей. Это показывает, что C# захватывает вывод .Invoke(), а затем выводит его: http://stackoverflow.com/questions/13251076/calling-powershell-from-c-sharp –