当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 比较日期

作者:精品下载站 日期:2024-12-14 17:17:05 浏览:12 分类:玩电脑

PowerShell 比较日期


要在 PowerShell 中比较日期,请使用 PowerShell 运算符 ltgt。它比较小于或大于另一个日期的日期,并返回True或False的值

[玩转系统] PowerShell 比较日期

在 PowerShell 中,Get-Date 返回 DateTime 对象,因此使用 PowerShell 运算符 lt 或 gt 比较日期变得更加容易。

您可以在 PowerShell 中比较日期字符串,前提是它们采用正确的日期时间格式。

在本文中,我们将讨论如何在 PowerShell 中比较日期以及如何在 PowerShell 中比较日期字符串。

PowerShell 比较日期

使用 lt(小于)或 gt(大于)等 PowerShell 运算符在 PowerShell 中比较两个日期。

让我们使用一个示例来比较 PowerShell 中的两个日期。

# Get Current Date
$date1 = Get-Date 

# Get Previous Date
$date2 = (Get-Date).AddDays(-1) 

# Compare two dates, if $date1 is less than $date2
$date1 -lt $date2

# Compare two dates, if $date1 is greater than $date2
$date1 -gt $date2  

在上面的 PowerShell 脚本中,Get-Date 返回当前的 DateTime 对象并将其存储在 $date1 变量中,$date2 变量存储前一天的日期。

在 PowerShell 中进行日期比较时,它使用 -lt 运算符 来检查 $date1 是否小于 $date2 并返回一个布尔值 False

-gt 运算符 检查 $date1 是否大于 $date2 并返回布尔值 True。这意味着 $date1 大于 $date2。

使用 PowerShell 运算符 lt 和 gt 比较两个日期的上述 PowerShell 脚本的输出如下所示:

[玩转系统] PowerShell 比较日期

PowerShell 比较日期字符串

在 PowerShell 中比较日期字符串时,需要与日期进行比较的字符串应该具有正确的日期格式,否则在比较两个日期字符串时会抛出异常。

# Get the current date of the user login
$loginDate = Get-Date 

# User account expiry date
$accountexpiryDate ="02-25-2023"

# Compare date strings
$loginDate -lt $accountexpiryDate    

在上面的 PowerShell 脚本中,$loginDate 变量存储当前的 DateTime 对象。 $accountexpiryDate 变量以字符串格式存储日期。

比较日期时,使用 PowerShell 运算符(例如 lt 或 gt)来检查日期是否小于或大于后一个日期,它返回布尔值 True 或 False。

在上面的脚本中,字符串格式的日期遵循系统格式,这意味着在我的机器上,日期时间格式为“mm-dd-yyyy”,因此可以将日期时间与字符串进行比较。

下面给出了上述 PowerShell 比较两个日期的输出

PS C:\Windows> $loginDate = Get-Date                                                                                    PS C:\Windows> $loginDate                                                                                               
21 January 2023 18:45:59


PS C:\Windows> $accountexpiryDate ="02-25-2023"                                                                         PS C:\Windows> $accountexpiryDate                                                                                       02-25-2023

PS C:\Windows> $loginDate -lt $accountexpiryDate                                                                        True
PS C:\Windows> 

如果我们将 $accountexpiryDate 修改为“25-02-2023”(dd-mm-yyyy),则会导致异常“String was not recognizes as a valid DateTime”,如下所示

PS C:\Windows> $accountexpiryDate ="25-02-2023"    

PS C:\Windows> $loginDate -lt $accountexpiryDate

Could not compare "01/21/2023 18:45:59" to "25-02-2023". Error: "Cannot convert value "25-02-2023" to type
"System.DateTime". Error: "String was not recognized as a valid DateTime.""
At line:1 char:1
+ $loginDate -lt $accountexpiryDate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : ComparisonFailure

PS C:\Windows>   

结论

希望上面关于如何在PowerShell中比较两个日期的文章对您有所帮助。

PowerShell 运算符 lt 和 gt 用于比较日期并返回布尔值。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

推荐内容

如何在 PowerShell 中将字符串转换为日期时间

PowerShell 新纪元时间和日期时间转换

PowerShell 比较文件修改日期

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯