Я начал «играть» с PowerShell и пытаюсь заставить его «вести себя».
Одна из вещей, которые я хотел бы сделать, — настроить PROMPT так, чтобы он был «похож» на то, что делает «$ M $ P $ _ $ + $ G» в MS-Dos:
Краткое изложение того, что они делают:
Персонаж | Описание
$ m Удаленное имя, связанное с текущей буквой диска или пустой строкой, если текущий диск не является сетевым.
$ p Текущий диск и путь
$ _ ENTER-LINEFEED
$ + Ноль или более знаков плюса (+ ) символов в зависимости от глубины стека каталогов pushd, по одному символу для каждого выдвинутого уровня
$ g> (знак больше)
Итак, окончательный результат будет примерно таким:
\\spma1fp1\JARAVJ$ H:\temp
++>
Я смог добавить функции $M
и $_
(и отличную функцию истории) в свою подсказку следующим образом:
function prompt
{
## Get the history. Since the history may be either empty,
## a single item or an array, the @() syntax ensures
## that PowerShell treats it as an array
$history = @(get-history)
## If there are any items in the history, find out the
## Id of the final one.
## PowerShell defaults the $lastId variable to '0' if this
## code doesn't execute.
if($history.Count -gt 0)
{
$lastItem = $history[$history.Count - 1]
$lastId = $lastItem.Id
}
## The command that we're currently entering on the prompt
## will be next in the history. Because of that, we'll
## take the last history Id and add one to it.
$nextCommand = $lastId + 1
## Get the current location
$currentDirectory = get-location
## Set the Windows Title to the current location
$host.ui.RawUI.WindowTitle = "PS: " + $currentDirectory
## And create a prompt that shows the command number,
## and current location
"PS:$nextCommand $currentDirectory
>"
}
Но остальное мне еще не удалось скопировать ….
Большое спасибо за советы, которые обязательно придут!
Посмотрите, делает ли это то, что вы хотите:
Это даст вам количество мест в стеке pushd:
Благодаря ответу EBGReens моя «подсказка» теперь может показывать глубину стека:
Забыл про умножение струн. Хороший улов. Слишком много писем сегодня утром. :(. — person JJarava; 01.10.2008
Следующее даст вам эквивалент $ m.
Благодаря советам в:
в PowerShell , как я могу определить, является ли текущий диск подключенным к сети?
В PowerShell, как я могу определить корень диска (предположим, что это сетевой диск)
Мне удалось заставить его работать.
Мой полный профиль: