4

我廣泛閱讀,我可以在一個參數通過傳遞給我的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允許任何想法錯了嗎?

回答

12

試圍值()

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

相關問題