Объект PowerShellTab
Объект PowerShellTab представляет среду выполнения Windows PowerShell.
Методика
Invoke( Script )
Поддерживается в среде сценариев Windows PowerShell 2.0 и более поздних версий.
Выполняет заданный скрипт на вкладке PowerShell.
Заметка
Этот метод работает только на других вкладках PowerShell, а не на вкладке PowerShell, из которой она выполняется. Он не возвращает объект или значение. Если код изменяет любую переменную, эти изменения сохраняются на вкладке, для которой была вызвана команда.
скрипт — System.Management.Automation.ScriptBlock или Строка блока скрипта для выполнения.
# 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], миллисекундаsTimeout )
Поддерживается в среде СЦЕНАРИЕв Windows PowerShell 3.0 и более поздних версий, но не присутствует в более ранних версиях.
Выполняет заданный скрипт на вкладке PowerShell.
Заметка
Этот метод работает только на других вкладках PowerShell, а не на вкладке PowerShell, из которой она выполняется. Блок скрипта выполняется, и любое значение, возвращаемое из скрипта, возвращается в среду выполнения, из которой вы вызвали команду. Если команда занимает больше времени для выполнения, чем указано значение миллезеконdsTimeout, то команда завершается ошибкой с исключением: "Время ожидания операции истекло".
скрипт — System.Management.Automation.ScriptBlock или Строка блока скрипта для выполнения.
[useNewScope] — необязательный логический элемент, который по умолчанию $true
если задано значение $true
, создается новая область, в которой выполняется команда. Среда выполнения вкладки PowerShell, указанная командой, не изменяет среду выполнения.
[миллисекундаsTimeout] — необязательное целое число, которое по умолчанию 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 2.0 и более поздних версий.
Свойство только для чтения, которое получает меню надстроек для вкладки 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 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 is
# 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 3.0 и более поздних версий, но не присутствует в более ранних версиях. В среде сценариев Windows PowerShell 2.0 это было названо CommandPane.
Свойство только для чтения, которое получает область консоли редактора объекта.
# Gets the Console Pane editor.
$psISE.CurrentPowerShellTab.ConsolePane
DisplayName
Поддерживается в среде сценариев Windows PowerShell 2.0 и более поздних версий.
Свойство чтения и записи, которое получает или задает текст, отображаемый на вкладке PowerShell. По умолчанию вкладки называются "PowerShell #", где # представляет число.
$newTab = $psISE.PowerShellTabs.Add()
# Change the DisplayName of the new PowerShell tab.
$newTab.DisplayName = 'Brand New Tab'
ExpandedScript
Поддерживается в среде сценариев Windows PowerShell 2.0 и более поздних версий.
Логическое свойство чтения и записи, определяющее, развернута ли область скрипта или скрыта.
# Toggle the expanded script property to see its effect.
$psISE.CurrentPowerShellTab.ExpandedScript = !$psISE.CurrentPowerShellTab.ExpandedScript
Файлы
Поддерживается в среде сценариев Windows PowerShell 2.0 и более поздних версий.
Свойство только для чтения, которое получает коллекцию файлов скриптов, открытых на вкладке PowerShell.
$newFile = $psISE.CurrentPowerShellTab.Files.Add()
$newFile.Editor.Text = "a`r`nb"
# Gets the line count
$newFile.Editor.LineCount
Выпуск
Эта функция присутствует в среде СЦЕНАРИЕВ Windows PowerShell 2.0, но была удалена или переименована в более поздних версиях isE. В более поздних версиях интегрированной среды сценариев Windows PowerShell можно использовать объект ConsolePane для этих же целей.
Свойство только для чтения, которое получает область вывода текущего редактора .
# Clears the text in the Output pane.
$psISE.CurrentPowerShellTab.output.clear()
Подсказывать
Поддерживается в среде сценариев Windows PowerShell 2.0 и более поздних версий.
Свойство только для чтения, которое получает текущий текст запроса. Примечание. Функция запроса может быть переопределена профилем пользователя ™. Если результат отличается от простой строки, это свойство не возвращает ничего.
# Gets the current prompt text.
$psISE.CurrentPowerShellTab.Prompt
ShowCommands
Поддерживается в среде СЦЕНАРИЕв Windows PowerShell 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}
StatusText
Поддерживается в среде сценариев Windows PowerShell 2.0 и более поздних версий.
Свойство только для чтения, которое получает текст состояния PowerShellTab.
# Gets the current status text,
$psISE.CurrentPowerShellTab.StatusText
HorizontalAddOnToolsPaneOpened
Поддерживается в среде СЦЕНАРИЕв Windows PowerShell 3.0 и более поздних версий, но не присутствует в более ранних версиях.
Свойство только для чтения, указывающее, открыта ли горизонтальная область инструментов Add-Ons.
# Gets the current state of the horizontal Add-ons tool pane.
$psISE.CurrentPowerShellTab.HorizontalAddOnToolsPaneOpened
VerticalAddOnToolsPaneOpened
Поддерживается в среде СЦЕНАРИЕв Windows PowerShell 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
См. также
- объект PowerShellTabCollection
- назначение объектной модели сценариев сценариев Windows PowerShell ISE
- иерархии объектной модели ISE
PowerShell