传递日期时间作为参数

问题描述:

我广泛阅读,我可以在一个参数通过传递给我的PowerShell脚本:传递日期时间作为参数

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,在那里我g允许任何想法错了吗?

试围值()

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

你的传奇 - 谢谢。我想这是有道理的,它说有一个缺少的表达。有什么理由要我们这样做吗? – 2013-04-30 10:41:19

+1

原因在于powershell引擎如何解析脚本:'()'强制解析器在将它分配给变量之前解析'get-date'值。 – 2013-04-30 10:45:18

+0

非常感谢 – 2013-04-30 10:46:47