Как определить из сценария PowerShell во время выполнения, на каком хосте он работает? - PullRequest
5 голосов
/ 06 августа 2009

Я пытаюсь выяснить, работает ли мой скрипт в PowerShell.exe или в ISE. Если я работаю в PowerShell.exe, то я хотел бы изменить размер окна консоли, но я не хочу влиять на ISE, если я этого не сделаю.

Ответы [ 2 ]

8 голосов
/ 06 августа 2009

Вы можете посмотреть на переменную $Host. Имя будет «ConsoleHost» в консоли и «Windows Powershell ISE Host» в ISE. Хотя это, возможно, может показаться немного странным, поскольку вы полагаетесь на читаемые пользователем строки.

Другим способом может быть просмотр $Host.UI.RawUI.BufferSize.Height, который, кажется, всегда равен 0 в ISE. То, что не очень часто встречается в окне консоли.

3 голосов
/ 06 августа 2009

$ shellid также, однако лучшим вариантом будет использование отдельных профилей для каждого хоста: Microsoft.PowerShell_Profile.ps1 и Microsoft.PowerShellISE_Profile.ps1. Соответствующие файлы будут работать для конкретных хостов. Для запуска чего-либо на всех хостах используйте универсальный файл Profile.ps1

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