стреляя редактор от сценария просто:
$proc = Start-Process -FilePath C:\Bin\Notepad++.exe -arg C:\Users\Matt\Notes.txt -PassThru
хитрее часть выяснить, как сохранить & закрыть файл. Если у редактора есть объектная модель COM, вы можете использовать это, но я сомневаюсь, что ваш редактор - это Word. :-)
Другим общим подходом является использование функциональных возможностей WinForms SendKeys. Однако даже лучший подход заключается в использовании инфраструктуры автоматизации пользовательского интерфейса Windows для управления пользовательским интерфейсом произвольных приложений. Существует даже модуль PowerShell, который обертывает этот API, чтобы упростить его использование в PowerShell. Он называется UIAutomation. Вот пример того, как оно используется:
Start-Process calc -PassThru | Get-UIAWindow |
Get-UIAButton -Name [1-3] | Invoke-UIAButtonClick;
Вы бы заменить $proc
для Start-Process calc -PassThru
немного выше.
С чем вы будете редактировать файл? Здесь огромная разница. Скрипт должен будет посмотреть, открыт ли файл, и предпринять соответствующие действия. Или вы можете использовать handle.exe из SysInternals, чтобы узнать, какое приложение открыто для этого файла, но это, вероятно, будет сложнее приспособить, поскольку вам придется каким-то образом писать код для взаимодействия с любым приложением, открытым файлом, и это может сильно различаться. Итак, редактируете ли вы файл с помощью Блокнота? – TheMadTechnician
Да, Блокнот или Возвышенное, если это возможно! – JKK