gpt4 book ai didi

file - 使用 '-eq' 比较文件的 LastWriteTime 不起作用

转载 作者:行者123 更新时间:2023-12-03 10:08:21 25 4
gpt4 key购买 nike

我正在使用 PowerShell 脚本来验证远程生产服务器上的文件日期。检查会向我们的部署工具输出一个代码号,以报告通过或失败的结果,以指示文件是否正确。

这是可行的,但是我遇到的唯一问题是我无法让以下脚本与 -eq 一起使用,而是使用 -gt 并将脚本中的文件日期比实际文件日期少一天。例如,脚本中的 11/17/2014 用于检查 11/18/2014 文件。

$FileExe= Get-ChildItem "C:\filepath\file.exe" |
Where-Object {$_.LastWriteTime -gt "11/17/2014"} | Out-String

if($FileExe){Write-Host '0'} else{Write-Host '4';Exit 4}

假设该文件是正确的 11/18/2014 文件,这将输出 0,表明它通过。如果没有,那么它会输出 4,表明存在错误的文件,此时我可以进去修复它。

如果我将 -gt 更改为 -eq 并更改脚本中的日期以匹配实际文件日期(本例中为 11/18/2014) ,脚本失败并输出错误代码。尽管事实上文件日期和脚本中的日期是正确的。

此时此刻,我已经不知所措了。我的脚本是否做错了什么,或者有没有更好的方法来完成我在这里尝试做的事情,从而允许 -eq

最佳答案

只是为了帮助补充其他答案,我认为值得指出的是,您正在测试的 -eq 操作非常不太可能起作用。您正在将字符串日期“11/18/2014”与日期时间值 LastWriteTime 进行比较。字符串日期将转换为日期时间以便进行比较。

考虑以下因素

Get-Date "10/06/2014" 返回 2014 年 10 月 6 日星期一 12:00:00 AM如您所见,时间默认为午夜。您的 -eq 比较正在使用该时间。除非您的 LastWriteTime 实际上是在午夜,否则比较将返回 false 并且确实如此。如果您只想知道更改是否是那天,则只需比较 LastWriteTime

的日期
$_.LastWriteTime.Date -eq "10/06/2014"

这样您就可以在各自日期的午夜比较两个日期。

这个answer谈论一些关于 bool 值的左手运算。它只是显示 powershell 将尝试对操作符右侧的操作执行什么操作。

关于file - 使用 '-eq' 比较文件的 LastWriteTime 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com