我试图写一个脚本,将复制一个文件到第二个位置,当文件的变化。为此,我使用了一个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语句提供了正确的值。