РАЗДЕЛ
	about_Prompts

КРАТКОЕ ОПИСАНИЕ
	Описывает функцию Prompt и показывает, как создать пользовательску
	ю функцию Prompt.

  
ПОЛНОЕ ОПИСАНИЕ
	Командная строка Windows PowerShell показывает, что среда Windows 
	PowerShell готова к выполнению команд: 

		PS C:\>


	Приглашение Windows PowerShell определяется функцией Prompt. 
	Можно настроить приглашение, создав собственную функцию Prompt. 
	Затем функцию можно сохранить в профиле Windows PowerShell.

   
  Функция Prompt

	Функция Prompt определяет внешний вид приглашения Windows 
	PowerShell. Windows PowerShell поставляется со встроенной 
	функцией Prompt, но вы можете переопределить ее, определив 
	собственную функцию Prompt.


	Функция Prompt имеет следующий синтаксис:

		function prompt { <тело_функции> }


	Функция Prompt должна возвращать объект, как правило строку. 
	Рекомендуется, чтобы она возвращала строку или объект, 
	форматированный как строка. Строка не должна превышать длиной 
	80 символов.


	Пример:

		PS C:\> function prompt {"Hello, World > "}
		Hello, World 

  
	Как все функции, функция Prompt хранится на диске Function:. 
	Для просмотра кода текущей функции Prompt введите следующую команду:

		(get-item function:prompt).definition


	Эта команда использует командлет Get-Item для отображения 
	элемента Prompt на диске Function:. Затем используется точка 
	для отображения значения свойства Definition функции Prompt. 


  Приглашение по умолчанию 

	Приглашение Windows PowerShell по умолчанию:

		PS>


	Такое приглашение отображается только в том случае, если 
	функция Prompt выдает ошибку или не возвращает строку или объект.

		PS C:\> function prompt {$null}
		PS>


	Поскольку Windows PowerShell поставляется со встроенным 
	приглашением, пользователь обычно не видит приглашение по 
	умолчанию до тех пор, пока не начинает писать собственную 
	функцию приглашения.


  Встроенное приглашение

 
	Windows PowerShell имеет встроенную функцию Prompt, которая 
	создает привычное приглашение. Эта встроенная функция выглядит так:

		function prompt
		{
			$(if (test-path variable:/PSDebugContext) { '[DBG]: ' } 

			else { '' }) + 'PS ' + $(Get-Location) `

			+ $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
	} 


	Функция использует командлет Test-Path, чтобы выяснить, 
	определена ли автоматическая переменная $PSDebugContext. Если 
	переменная $PSDebugContext определена, пользователь находится в 
	режиме отладки, и символы "[DBG]" добавляются к приглашению, 
	как в следующем примере:

		[DBG] PS C:\ps-test>
	
	 
	Если переменная $PSDebugContext не определена, функция 
	добавляет к приглашению символы "PS". Также функция использует 
	командлет Get-Location для получения текущего местоположения 
	каталога файловой системы. Затем она добавляет правую угловую 
	скобку (>). Пример:

		PS C:\ps-test>  


	Если вы находитесь во вложенной командной строке, функция 
	добавляет две угловые скобки (>>) к приглашению. (Вы находитесь 
	во вложенной командной строке, если значение автоматической 
	переменной $NestedPromptLevel больше 1.)


	Например, если вы отлаживаете во вложенной командной строке, 
	приглашение будет примерно таким:

		[DBG] PS C:\ps-test>>>


	Командлет Enter-PSSession предваряет результат работы текущей 
	функции Prompt именем удаленного компьютера. Когда вы 
	пользуетесь командлетом Enter-PSSession, чтобы начать сеанс 
	работы с удаленным компьютером, приглашение командной строки 
	меняется, включая в себя имя удаленного компьютера. Пример:

		PS Hello, World> Enter-PSSession Server01

		[Server01]: PS Hello, World>


	Другие ведущие приложения Windows PowerShell и альтернативные 
	оболочки могут иметь собственные настраиваемые приглашения 
	командной строки.


	Дополнительные сведения об автоматических переменных 
	$PSDebugContext и $NestedPromptLevel см. в разделе 
	about_Automatic_Variables.
	

  Настройка приглашения командной строки

	Чтобы изменить приглашение, нужно написать новую функцию 
	Prompt. Эта функция не является защищенной, таким образом, вы 
	можете перезаписать ее. 
 

	Чтобы написать функцию приглашения, нужно ввести следующее:

		function prompt { }


	Затем введите между фигурными скобками команду или строку, 
	создающую ваше приглашение.


	Например, следующее приглашение включает имя вашего компьютера:

		function prompt {"PS [$env:COMPUTERNAME]> "}


	На компьютере с именем Server01 приглашение будет напоминать 
	следующее:

		PS [Server01] >


	Включить текущую дату и время можно с помощью следующей функции 
	приглашения:

		function prompt {"$(get-date)> "}


	Приглашение будет напоминать следующее:

		01/01/2008 17:49:47>


	Вы также можете изменить функцию Prompt по умолчанию:


		function prompt
		{
			$(if (test-path variable:/PSDebugContext) { '[DBG]: ' } 

			else { '' }) + "$(get-date)" `

			+ $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
	} 

  
	Например, следующая измененная функция Prompt добавляет 
	"[ADMIN]:" к встроенному приглашению Windows PowerShell, в 
	случае если Windows PowerShell запускается командой "Запуск от 
	имени администратора":

		function prompt 
		{
			$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
			$principal = [Security.Principal.WindowsPrincipal] $identity

			$(if (test-path variable:/PSDebugContext) { '[DBG]: ' } 

			elseif($principal.IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
				{ "[ADMIN]: " }

			else { '' }) + 'PS ' + $(Get-Location) + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
	}



	Если Windows PowerShell запускается командой "Запуск от имени 
	администратора", приглашение будет напоминать следующее:
			
		[ADMIN]: PS C:\ps-test>


	Следующая функция Prompt показывает идентификатор записи 
	следующей команды. Для получения журнала команд используется 
	командлет Get-History.  

		function prompt
		{
			 # The at sign creates an array in case only one history item exists.
			 $history = @(get-history)
			 if($history.Count -gt 0)
			 {
				$lastItem = $history[$history.Count - 1]
				$lastId = $lastItem.Id
			 }

			 $nextCommand = $lastId + 1
			 $currentDirectory = get-location
			 "PS: $nextCommand $currentDirectory >"
	}




	Следующая строка использует командлеты Write-Host и Get-Random 
	для создания приглашения, изменяющего цвет случайным образом. 
	Поскольку командлет Write-Host выводит данные в текущее ведущее 
	приложение, не возвращая объект, эта функция включает 
	инструкцию Return. Без нее среда Windows PowerShell использует 
	приглашение по умолчанию: "PS>".

		function prompt
		{
			$color = get-random -min 1 -max 16
			write-host ("PS " + $(get-location) +">") -nonewline -foregroundcolor $color
			return " "
	}

  Сохранение приглашения
	
	Как любая функция, функция Prompt применяется только к текущему 
	сеансу работы. Чтобы сохранить функцию Prompt для будущих 
	сеансов, добавьте ее в ваш профиль Windows PowerShell. 
	Дополнительные сведения о профилях см. в разделе about_Profiles.


СМ. ТАКЖЕ
	Get-Location
	Enter-PSSession
	Get-History
	Get-Random
	Write-Host
	about_Profiles
	about_Functions
	about_Scopes
	about_Debuggers
	about_Automatic_Variables