首页 > 解决方案 > 将具有今天日期的目录中的文件复制到另一个位置

问题描述

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

我认为最简单的方法是:

$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\", ''))))
}

我们拥有的代码似乎将所有文件夹复制到该位置,并且无法查看多个目录。

我有一种感觉,我们正在接近这个错误,任何人都可以提出实现这一目标的最佳方法吗?网上很少有帖子解释如何从时间戳文件夹中检索文件。

标签: powershell

解决方案


推荐阅读