Как запустить команды PowerShell на C#

#c# #powershell #command

Вопрос:

В cmd я пишу это, и это работает (эта команда удаляет N первых строк из файла):

 powershell.exe $file = "C:Testfile.txt" $content = Get-Content $file $content[10..($content.length-1)]|Out-File $file -Force  

Я хочу написать этот код на C#, но мой путь неверен. Можете ли вы объяснить, почему?

 using (PowerShell ps = PowerShell.Create()) {  ps.AddCommand($"$file = "{fullPathToTxt}"")  .AddCommand("$content = Get-Content $file")  .AddCommand($"$content[{numLine}..($content.length-1)]|Out-File $file -Force")  .Invoke(); }  

Комментарии:

1. может быть, будет проще выполнять все эти действия с помощью C#?

2. Я хочу сделать это таким образом 😀

Ответ №1:

Вместо addCommand я должен использовать метод AddScript.

Ответ №2:

Вы можете использовать эту команду для выполнения сценария powershell

 PowerShell ps = PowerShell.Create(); ps.AddScript(File.ReadAllText(@"D:PSScriptsMyScript.ps1")).Invoke();