Powershell Date变量在赋值为即将到来的星期五后仍然包含todays Date
我有一个小的powershell脚本来查找即将到来的星期五的日期。但是,在指定了Friday日期的值之后,my date变量仍然打印出todays日期Powershell Date变量在赋值为即将到来的星期五后仍然包含todays Date,powershell,Powershell,我有一个小的powershell脚本来查找即将到来的星期五的日期。但是,在指定了Friday日期的值之后,my date变量仍然打印出todays日期 $date = Get-Date for($i=1; $i -le 7; $i++) { if($date.AddDays($i).DayOfWeek -eq 'Friday') { $date.AddDays($i) break } } Write-Host "$date
$date = Get-Date
for($i=1; $i -le 7; $i++)
{
if($date.AddDays($i).DayOfWeek -eq 'Friday')
{
$date.AddDays($i)
break
}
}
Write-Host "$date"
AddDays
似乎返回新的日期对象,而不是更新$date
中的日期对象。尝试在if语句中为新日期指定$date
,如下所示:
$date = $date.AddDays($i)
AddDays
似乎返回新的日期对象,而不是更新$date
中的日期对象。尝试在if语句中为新日期指定$date
,如下所示:
$date = $date.AddDays($i)
您必须将分配给$date的值返回给自身
您必须将分配给$date的值返回给它本身。您可能昨天(星期三)测试了它,因为它今天可以工作。 代码中的问题是,它每次都重复使用相同的
$Date
,并且可能会超过预期的日期:
Date + 1
Date + 3 (1 + 2)
Date + 6 (1 + 2 + 3)
...
换句话说,$date=Get date
应该在您的循环中
(Get-Date).AddDays((1..7 | Where {(Get-Date).AddDays($_).DayOfWeek -eq 'Friday'}))
您可能在昨天(周三)测试了它,因为它在今天工作。 代码中的问题是,它每次都重复使用相同的
$Date
,并且可能会超过预期的日期:
Date + 1
Date + 3 (1 + 2)
Date + 6 (1 + 2 + 3)
...
换句话说,$date=Get date
应该在您的循环中
(Get-Date).AddDays((1..7 | Where {(Get-Date).AddDays($_).DayOfWeek -eq 'Friday'}))
@ArcSet:他希望在if块中显示日期。他必须把它分配到$datevariable@ArcSet:他希望在if块内显示该日期。他必须把它分配给$date VARIABLE我在我的答案里放了一个最小化函数,我在我的答案里放了一个最小化函数。