powershell - 如何使用 Powershell 比较 Last.Write.Time
问题描述
我想编写将文件合并到一个的脚本,如果它们稍后被修改,那么应该是一个目标。我的脚本如下所示:
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
值-此处使用Get-Item
:
if((Get-Item $config).LastWriteTime -gt (Get-Item $destination).LastWriteTime)
{
# ...
}
推荐阅读
- c - 关于数组下标函数的使用
- sql - SQL 警告 INSERT INTO %%bmk%%
- elasticsearch - Elasticsearch 匹配查询不匹配带有撇号的文档
- python - 如何将日期转换为 Django 时区感知日期时间
- django - Django 管理样式损坏
- javascript - 将数据从一个异步函数传递到另一个的问题
- java - 使用过滤器实现 JAX-RS 身份验证会中断 OpenApi 端点
- python - Python:名称“变量”是本地和全局的
- node.js - Heroku - EmberJS - 部署失败(无法下载节点)
- excel - 如果一个组合框被更改,则重置另一个组合框