复制和删除项目时出现文件外

时间:2019-06-20 10:33:18

标签: powershell

我有一个脚本来备份并删除世代(组)中的文件。我需要添加一些日志记录,记录它复制哪些文件以及删除哪些文件。在以前的所有笔录中,我一直使用Out-File,但是在这种情况下,我无法使用它。

如果我将其添加到Copy-Item部分中,它将创建文件,但不会写任何输入。我想念的是什么?

#$a = Get-Date
#$a.ToUniversalTime()

foreach ($file in (Get-ChildItem -File $localpath -Recurse | Where {$_.LastWriteTime -gt (Get-Date).AddDays(-1)})) {
    Copy-Item -Path $file.FullName -Destination "C:\qlikview Storage\privatedata\backup\$file.$(get-date -f yyyy-MM-dd)"
}
$Groups = Get-ChildItem -Path "C:\qlikview Storage\privatedata\backup" |
          Group-Object -Property Basename |
          Where-Object {$_.Count -gt 2}
foreach ($g in $Groups) {
    $g.Group |
        sort LastWriteTime -Descending |
        select -Skip 2 |
        foreach {del $_.FullName -Force}
}

#a供以后添加日志记录的时间戳,以查看需要多长时间。 假设要走Out-File是我的想法吗?

1 个答案:

答案 0 :(得分:1)

-Verbose开关添加到Copy-ItemRemove-Item命令中。这会将复制/删除的文件转储到verbose stream中。

之后,您可以将详细流重定向到输出流(4>&1)并将其记录为文件。

示例:

Copy-Item... -Verbose 4>&1 | Out-file log.txt

其他信息可以在about_Redirection中找到。