传递日期时间作为参数
问题描述:
我广泛阅读,我可以在一个参数通过传递给我的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")
)
你的传奇 - 谢谢。我想这是有道理的,它说有一个缺少的表达。有什么理由要我们这样做吗? – 2013-04-30 10:41:19
原因在于powershell引擎如何解析脚本:'()'强制解析器在将它分配给变量之前解析'get-date'值。 – 2013-04-30 10:45:18
非常感谢 – 2013-04-30 10:46:47