powershell - 将具有今天日期的目录中的文件复制到另一个位置
问题描述
AD Manager Plus 每小时生成一个带有时间戳的文件路径的报告,我想将这些文件复制到另一个位置 - 覆盖现有文件。然后,我将安排脚本在文件生成后每小时运行一次。不幸的是,无法修改报告提取到的位置,它会创建带有日期和时间戳的文件夹。
例子:
C:\ADManager Plus\audit-data\reports\16042019\DailyTrue-Up01-55-07\Real Last Logon.xls C:\ADManager Plus\audit-data\reports\ddmmyyyy\DailyTrue-Uphh-mm-ss\Real Last Logon.xls
我认为最简单的方法是:
- 获取报告文件夹中最后修改的文件夹 - 例如
Apr162019
- 获取 Apr162019 文件夹中最后修改的文件夹 - 例如
DailyTrue-Up01-55-07
- 过滤文件夹中的 Real Last Logon.xls 电子表格
DailyTrue-Up01-55-07
$Path = "C:\ADManager Plus\audit-data\reports"
$DestinationPath = "\\domain\networkshare\Reports\"
Get-ChildItem -Path $Path -Directory | ForEach-Object {
Get-ChildItem -Path "$Path\$_" -File -Filter "Real Last Logon.xlsx" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1 |
Copy-Item -Force -Destination (New-Item -Force -Type Directory -Path (Join-Path $DestinationPath ($_.FullName.Replace("$Path\", ''))))
}
我们拥有的代码似乎将所有文件夹复制到该位置,并且无法查看多个目录。
我有一种感觉,我们正在接近这个错误,任何人都可以提出实现这一目标的最佳方法吗?网上很少有帖子解释如何从时间戳文件夹中检索文件。
解决方案
推荐阅读
- ios - 我该如何解决 Apple App Binary Rejected?
- mysql - MySQL转换为大写不起作用
- sql - PostgreSQL 用逗号分隔的整数将字符串拆分为逗号分隔的整数
- powershell - 在 Powershell 中合并 txt 文件时出现 UTF-8 编码问题
- java - Java反射从静态类调用嵌套方法
- python - 是否有任何正确的格式可以将上下文名称添加到 snmp 代理?
- c# - Net Core - 集成测试 - TestServer - 真实的http连接
- java - 在java中读取可扩展的arraylist
- sql - 通过 SQL 查询获取百分比
- nginx - 从 $uri NGINX 中获取一部分