Написание функций powershell внутри строки - PullRequest
2 голосов
/ 17 февраля 2010

Если у меня есть:

Write-Host "[$(Get-Date -displayhint time)] backup starting..."

Я получаю:

[02/17/2010 1:26:12pm] backup starting...

я. е. параметры Get-Date игнорируются и просто возвращают вывод Get-Date.

Какой лучший способ сделать текущее время в середине строки?

спасибо

Ответы [ 2 ]

8 голосов
/ 17 февраля 2010

Ну, в этом случае вы конвертируете в строку, потому что вы используете вывод в строке. Результатом команды Get-Date по-прежнему является объект DateTime. В этом случае подсказка дисплея будет учитываться командлетом Out-Host.

Вы можете использовать параметр -Format для принудительной установки определенного формата, в этом случае командлет возвращает строку:

Get-Date -Format T

("T" - строка формата для полного времени), которая затем выглядит следующим образом:

PS Home:\> Write-Host "[$(Get-Date -Format T)] backup starting..."
[19:35:12] backup starting...
0 голосов
/ 19 февраля 2010

Вы также можете использовать метод ToString () класса DateTime. Я обычно делаю что-то вроде этого:

[PS] C:\>write-host "$((get-date).tostring('yyyy.MM.dd-HH:mm:ss'))"
2010.02.19-09:54:51
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...