我在PowerShell中的哈希表看起來像這樣($hash_dates.GetEnumerator() | sort -Property name
):循環遍歷哈希表中的日期?
11/1/2016 12:00:00 AM 5
11/2/2016 12:00:00 AM 3
11/4/2016 12:00:00 AM 2
的關鍵是DateTime類型。
我正在運行一個for循環來捕獲所有日期(僅限日期,因此所有午夜都不重要),並根據日期提取散列表中的每個值。代碼:
$startdate = (get-date).AddDays(-30)
$today = get-date -format G
for($i = $startdate; $i -lt $today; $i=$i.AddDays(1))
{
$z = $i -split " "
$z = [datetime]$z[0]
$z = Get-Date $z -format G
"Comparing $z to: "
$hash_dates.Keys | ? { $hash_dates[$_] -eq $z }
}
我用-format G
和split
,以保證格式匹配。但循環從未找到任何結果(即使它通過11/1/2016等循環)。我錯過了什麼嗎?
'$ today'是一個字符串。 '$ i -lt $ today'沒有意義 –
@ MathiasR.Jessen嗯。但循環工作得很好。它從今天開始30,並循環到今天,並輸出「比較:」每個過程。它只是沒有找到任何散列鍵。 –
Zeno
@Zeno:'$ i -lt $ today'按預期工作的唯一原因是_string_'$ today'被重新轉換爲'[datetime]'_作爲比較_,因爲_LHS_的類型是'[datetime]' ,但沒有很好的理由將'$ today'表示爲一個字符串。 – mklement0