如何使用Powershell比较Last.Write.Time
我想写一个脚本,将文件合并到一个文件中,如果以后对它们进行了修改,那么这个脚本应该是一个目标。我的脚本如下所示:如何使用Powershell比较Last.Write.Time,powershell,lastmodifiedtime,Powershell,Lastmodifiedtime,我想写一个脚本,将文件合并到一个文件中,如果以后对它们进行了修改,那么这个脚本应该是一个目标。我的脚本如下所示: Function UnifyConfigs { param ( $destination = "C:\temp\all.txt", [Parameter()] $files ) foreach ($config in $files) { If((Get-ChildItem $config ).LastWriteTime -gt (Get-Item $de
Function UnifyConfigs { param ( $destination = "C:\temp\all.txt", [Parameter()] $files )
foreach ($config in $files) {
If((Get-ChildItem $config ).LastWriteTime -gt (Get-Item $destination).LastWriteTime)
{
Clear-Content -path $destination
Set-Content -path $destination -value (Get-Content $config)
}
else {
break
}
}
}
我的主要问题是$destination文件总是被修改。据我所知,只有当$config的修改日期大于$destination的修改日期时,才应该更改它。但现在,每次运行脚本时,它都会被覆盖。有什么问题吗?
$destination
块中定义的param
是一个字符串-您需要解析文件系统提供程序中的相应项,以获取LastWriteTime
值-此处使用:
($destination).LastWriteTime
->(获取项目$destination)。LastWriteTime
Mathias,我根据您的建议编辑了代码,谢谢!非常感谢,但是你能更具体一点吗?我该怎么做?我是否应该将其转换为日期,然后进行比较?或者?@Patrycja查看我答案中的示例代码-Get Item
将返回带有LastWriteTime的FileInfo
对象attribute@Patrycja这很好:-D如果我的答案解决了你的问题,请考虑将它标记为“接受”,点击左边的复选标记:
if((Get-Item $config).LastWriteTime -gt (Get-Item $destination).LastWriteTime)
{
# ...
}