4

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

param (
    [Datetime]$argument 
) 

Я также читал, что я могу определить значение по умолчанию:

param (
    [Datetime]$argument = Get-Date "5/1/2006 7:00 AM" 
) 

Однако на этом я получаю:

At C:\Users\medmondson\Desktop\Scripts\ScrumTimer.ps1:2 char:26 + [Datetime]$argument = Get-Date "5/1/2006 7:00 AM" + ~ Missing expression after '='. At C:\Users\medmondson\Desktop\Scripts\ScrumTimer.ps1:2 char:24 + [Datetime]$argument = Get-Date "5/1/2006 7:00 AM" + ~ Missing ')' in function parameter list. At C:\Users\medmondson\Desktop\Scripts\ScrumTimer.ps1:3 char:1 +) + ~ Unexpected token ')' in expression or statement. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingExpressionAfterToken

Это только кажется, происходит для DateTime, ни малейшего представления, где я г неправильно?

ответ

12

попробовать значение Вложить в ()

param (
    [Datetime]$argument = (Get-Date "5/1/2006 7:00 AM") 
) 
+0

You легенда - спасибо. Полагаю, имеет смысл, что в нем говорится о недостающем выражении. Есть ли причина, почему мы должны это делать? –

+1

Причина в том, как механизм powershell анализирует скрипт: '()' заставляет парсер разрешать значение get-date' перед тем, как назначить его переменной. –

+0

Большое спасибо –

Смежные вопросы