【问题标题】:Passing DateTime as a parameter将 DateTime 作为参数传递
【发布时间】:2013-04-30 10:35:03
【问题描述】:

我已经广泛阅读,我可以通过以下方式将参数传递给我的 powershell 脚本:

param (
    [Datetime]$argument
)

我还读到我可以定义一个默认值:

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

但是这样做我得到:

在 C:\Users\medmondson\Desktop\Scripts\ScrumTimer.ps1:2 char:26 + [日期时间]$argument = 获取日期“5/1/2006 7:00 AM” + ~ '=' 后缺少表达式。在 C:\Users\medmondson\Desktop\Scripts\ScrumTimer.ps1:2 char:24 + [日期时间]$argument = 获取日期“5/1/2006 7:00 AM” + ~ 函数参数列表中缺少 ')'。在 C:\Users\medmondson\Desktop\Scripts\ScrumTimer.ps1:3 char:1 + ) + ~ 表达式或语句中出现意外标记 ')'。 + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingExpressionAfterToken

这似乎只发生在DateTime,知道我哪里出错了吗?

【问题讨论】:

    标签: function powershell parameters parameter-passing powershell-3.0


    【解决方案1】:

    尝试将值包含在()

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

    【讨论】:

    • 你的传奇 - 谢谢。我认为它说缺少表达式是有道理的。我们有什么理由必须这样做吗?
    • 原因在于powershell引擎如何解析脚本:()强制解析器在将get-date值分配给变量之前解析它。
    • @m.edmondson 很高兴为您提供帮助!
    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2020-09-18
    • 2015-05-24
    相关资源
    最近更新 更多