Поделиться через


Объект PowerShellTab

Объект PowerShellTab представляет среду выполнения Windows PowerShell.

Методы

Invoke( Script )

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Запустит указанный скрипт во вкладке PowerShell.

Замечание

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

  • Script - System.Management.Automation.ScriptBlock или String - блок скрипта для запуска.
# Manually create a second PowerShell tab before running this script.
# Return to the first PowerShell tab and type the following command
$psISE.PowerShellTabs[1].Invoke({dir})

InvokeSynchronous( Script, [useNewScope], millisecondsTimeout )

Поддерживается в Windows PowerShell ISE 3.0 и более поздних версиях, отсутствует в предыдущих версиях.

Запустит указанный скрипт во вкладке PowerShell.

Замечание

Этот метод работает только на других вкладках PowerShell, а не на вкладке PowerShell, с которой он запускается. Блок скрипта запускается, и любое значение, возвращаемое из скрипта, возвращается в среду запуска, из которой вы вызвали команду. Если выполнение команды занимает больше времени, чем указывает значение millesecondsTimeout , то команда не выполняется с исключением: «Операция истекла».

  • Script - System.Management.Automation.ScriptBlock или String - блок скрипта для запуска.
  • [useNewScope] - Опциональный булевый диапазон, который по умолчанию установлен на $true - Если установлено на $true, то создаётся новая область для выполнения команды. Он не изменяет среду выполнения вкладки PowerShell, указанную командой.
  • [миллисекундыТайм-аут] - Необязательное целое число по умолчанию 500. - Если команда не завершается в указанное время, команда генерирует TimeoutException с сообщением «Операция истекла».
# Create a new PowerShell tab and then switch back to the first
$psISE.PowerShellTabs.Add()
$psISE.PowerShellTabs.SetSelectedPowerShellTab($psISE.PowerShellTabs[0])

# Invoke a simple command on the other tab, in its own scope
$psISE.PowerShellTabs[1].InvokeSynchronous('$x=1', $false)
# You can switch to the other tab and type '$x' to see that the value is saved there.

# This example sets a value in the other tab (in a different scope)
# and returns it through the pipeline to this tab to store in $a
$a = $psISE.PowerShellTabs[1].InvokeSynchronous('$z=3;$z')
$a

# This example runs a command that takes longer than the allowed timeout value
# and measures how long it runs so that you can see the impact
Measure-Command {$psISE.PowerShellTabs[1].InvokeSynchronous('sleep 10', $false, 5000)}

Свойства

AddOnsMenu

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство только для чтения, которое получает меню Add-ons для вкладки PowerShell.

# Clear the Add-ons menu if one exists.
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
# Create an AddOns menu with an accessor.
# Note the use of "_"  as opposed to the "&" for mapping to the fast key letter for the menu item.
$menuAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add('_Process',
    {Get-Process}, 'Alt+P')
# Add a nested menu.
$parentAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add('Parent', $null, $null)
$parentAdded.SubMenus.Add('_Dir', {dir}, 'Alt+D')
# Show the Add-ons menu on the current PowerShell tab.
$psISE.CurrentPowerShellTab.AddOnsMenu

CanInvoke

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство булевого режима только для чтения, которое возвращает $true значение, если скрипт можно вызвать методом Invoke( Script).

# CanInvoke will be false if the PowerShell
# tab is running a script that takes a while, and you
# check its properties from another PowerShell tab. It's
# always false if checked on the current PowerShell tab.
# Manually create a second PowerShell tab before running this script.
# Return to the first tab and type
$secondTab = $psISE.PowerShellTabs[1]
$secondTab.CanInvoke
$secondTab.Invoke({sleep 20})
$secondTab.CanInvoke

ConsolePane

Поддерживается в Windows PowerShell ISE 3.0 и более поздних версиях, отсутствует в предыдущих версиях. В Windows PowerShell ISE 2.0 это называлось CommandPane.

Свойство только для чтения, которое получает объект редактора панели консоли.

# Gets the Console Pane editor.
$psISE.CurrentPowerShellTab.ConsolePane

Отображаемое имя

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство чтения-записи, которое получает или устанавливает текст, отображаемый на вкладке PowerShell. По умолчанию вкладки называются «PowerShell #», где # обозначает число.

$newTab = $psISE.PowerShellTabs.Add()
# Change the DisplayName of the new PowerShell tab.
$newTab.DisplayName = 'Brand New Tab'

ExpandedScript

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство булевого чтения и записи, которое определяет, расширена ли панель Script или скрыта.

# Toggle the expanded script property to see its effect.
$psISE.CurrentPowerShellTab.ExpandedScript = !$psISE.CurrentPowerShellTab.ExpandedScript

Files

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство только для чтения, которое получает коллекцию файлов скриптов , открытых во вкладке PowerShell.

$newFile = $psISE.CurrentPowerShellTab.Files.Add()
$newFile.Editor.Text = "a`r`nb"
# Gets the line count
$newFile.Editor.LineCount

Выходные данные

Эта функция присутствует в Windows PowerShell ISE 2.0, но была удалена или переименована в более поздних версиях ISE. В более поздних версиях Windows PowerShell ISE можно использовать объект ConsolePane для тех же целей.

Свойство только для чтения, которое получает панель вывода текущего редактора.

# Clears the text in the Output pane.
$psISE.CurrentPowerShellTab.Output.Clear()

Подсказка

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство только для чтения, которое получает текущий текст запроса. Примечание: функция prompt может быть переопределена профилем пользователя. Если результат отличный от простой строки, то это свойство ничего не возвращает.

# Gets the current prompt text.
$psISE.CurrentPowerShellTab.Prompt

ShowCommands

Поддерживается в Windows PowerShell ISE 3.0 и более поздних версиях, отсутствует в предыдущих версиях.

Свойство чтения-записи, которое указывает, отображается ли панель команд в данный момент.

# Gets the current status of the Commands pane and stores it in the $a variable
$a = $psISE.CurrentPowerShellTab.ShowCommands
# if $a is $false, then turn the Commands pane on by changing the value to $true
if (!$a) {$psISE.CurrentPowerShellTab.ShowCommands = $true}

Текст состояния

Поддерживается в Windows PowerShell ISE 2.0 и более поздних версиях.

Свойство только для чтения, которое получает статусный текст PowerShellTab .

# Gets the current status text,
$psISE.CurrentPowerShellTab.StatusText

HorizontalAddOnToolsPaneOpened

Поддерживается в Windows PowerShell ISE 3.0 и более поздних версиях, отсутствует в предыдущих версиях.

Свойство только для чтения, указывающее, открыта ли горизонтальная Add-Ons панель инструментов в данный момент.

# Gets the current state of the horizontal Add-ons tool pane.
$psISE.CurrentPowerShellTab.HorizontalAddOnToolsPaneOpened

VerticalAddOnToolsPaneOpened

Поддерживается в Windows PowerShell ISE 3.0 и более поздних версиях, отсутствует в предыдущих версиях.

Свойство только для чтения, которое указывает, открыта ли вертикальная панель инструмента Add-Ons данный момент.

# Turns on the Commands pane
$psISE.CurrentPowerShellTab.ShowCommands = $true
# Gets the current state of the vertical Add-ons tool pane.
$psISE.CurrentPowerShellTab.HorizontalAddOnToolsPaneOpened

См. также