我正在嘗試獲取字串日期時間和當前日期之間的天數差異。我在本地 PC 上嘗試了以下代碼
$Dateinname = "24-05-2022"
$Retention = (New-TimeSpan -Start $DateInName -End (get-date)).Days
if ($Retention -gt 14){
//do something
}
但是在自動化帳戶“Powershell 腳本”中,相同的代碼提供了以下錯誤:
New-TimeSpan : Cannot bind parameter 'Start'. Cannot convert value "[datetime]::parseexact" to type "System.DateTime". Error: "String was not recognized as a valid DateTime." At line:72 char:43 ... $Retention = (New-TimeSpan -Start [datetime]::parseexact($DateIn ... ~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo : InvalidArgument: (:) [New-TimeSpan], ParameterBindingException FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.NewTimeSpanCommand
我多次更改了開始轉換
- [日期時間]DateInName
- [日期時間]::parseexact($DateInName, 'dd-MMM-yyyy', $null)
- 將“-”更改為“/”。
但是自動化帳戶仍然失敗。在創建像 inscript 這樣的運行手冊時我錯過了什么,是否有我忘記安裝的模型?
uj5u.com熱心網友回復:
根據要求,在這里我的評論作為答案
中的日期格式$DateInName顯示它的格式為'dd-MM-yyyy'
(2 位日,2 位月,4 位年)。
要么做
$DateInName = [datetime]::ParseExact('24-05-2022', 'dd-MM-yyyy', $null)
$Retention = (New-TimeSpan -Start $DateInName -End (get-date)).Days
或者,如果您想在 New-TimeSpan 呼叫中執行此轉換,請將其括在括號中(..):
$DateInName = '24-05-2022'
$Retention = (New-TimeSpan -Start ([datetime]::ParseExact($DateInName, 'dd-MM-yyyy', $null)) -End (Get-Date)).Days
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/439097.html
