PowerShell - Comparing File.LastWriteTimeUtc



我试图写一个脚本,将复制一个文件到第二个位置,当文件的变化。为此,我使用了一个if语句,像这样:

if (
(Get-ChildItem C:folder2file).LastWriteTimeUtc -ge (Get-ChildItem C:folder1file).LastWriteTimeUtc
)
{exit}
else
{#execute}

现在文件是完全一样的如果我运行

(Get-ChildItem C:folder2file).LastWriteTimeUtc

两者的结果都是

Friday, 15. April 2022 23:32:09

我的问题是,这两个LastWriteTimes似乎是相同的,脚本不应该做任何事情,但它确实。原因是,虽然两个值看起来是一样的但其实不是这样的用& = &比较它们;返回"False".

我使用的是PowerShell 5.1

感谢大家的回复。我很抱歉我没有说得那么具体。但是因为他们,我找到了一个适合我的答案。

首先,我将两个日期作为刻度并将它们转换为字符串

$datef2 = (Get-ChildItem C:folder2file).LastWriteTimeUtc.Ticks.ToString()
$datef1 = (Get-ChildItem C:folder1file).LastWriteTimeUtc.Ticks.ToString()

然后我将最后7位数字替换为0(这是小于一秒的所有数字)并比较它们

($datef2.Substring(0,$datecb.Length-7) + "0000000") -ge ($datef1.Substring(0,$datenx.Length-7) + "0000000")

可能不是最优雅的解决方案,但它为if语句提供了正确的值。

相关内容

  • 没有找到相关文章

最新更新