Запустите сценарий PowerShell из C # - PullRequest
1 голос
/ 13 мая 2019

Я пытаюсь построить графическую платформу, используя Visual Studio. И я не разработчик, я хочу запускать PowerShell или командные файлы, когда я нажимаю кнопку. Дело в том, что когда я пытаюсь использовать синтаксис C #, он не работает, даже если я установил расширение PowerShell.

Я попробовал какой-то код, который нашел в Интернете, используя process.start или пытаясь создать команду во всех случаях, имя команды не определено, и оно не работает.

private void Button1_Click(object sender, EventArgs e)
{
    Process.Start("path\to\Powershell.exe",@"""ScriptwithArguments.ps1"" ""arg1"" ""arg2""");
}

Я хочу запустить свой .ps1 скрипт, но я получаю ошибку

имя процесса не определено

1 Ответ

0 голосов
/ 14 мая 2019

Вызов C # кода в Powershell и наоборот

C # в Powershell

$MyCode = @"
public class Calc
{
    public int Add(int a,int b)
    {
        return a+b;
    }

    public int Mul(int a,int b)
    {
        return a*b;
    }
    public static float Divide(int a,int b)
    {
        return a/b;
    }
}
"@

Add-Type -TypeDefinition $CalcInstance
$CalcInstance = New-Object -TypeName Calc
$CalcInstance.Add(20,30)

Powershell в C #

Все функции, связанные с Powershell, находятся в Пространство имен System.Management.Automation, ... ссылка на это в вашем проекте

 static void Main(string[] args)
        {
            var script = "Get-Process | select -Property @{N='Name';E={$_.Name}},@{N='CPU';E={$_.CPU}}";

            var powerShell = PowerShell.Create().AddScript(script);

            foreach (dynamic item in powerShell.Invoke().ToList())
            {
                //check if the CPU usage is greater than 10
                if (item.CPU > 10)
                {
                    Console.WriteLine("The process greater than 10 CPU counts is : " + item.Name);
                }
            }

            Console.Read();
        }

Итак, ваш запрос также является дубликатом многих похожих сообщений в stackoverflow.

Команда Powershell в C #

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...