我有一个脚本来备份并删除世代(组)中的文件。我需要添加一些日志记录,记录它复制哪些文件以及删除哪些文件。在以前的所有笔录中,我一直使用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
是我的想法吗?
答案 0 :(得分:1)
将-Verbose
开关添加到Copy-Item
和Remove-Item
命令中。这会将复制/删除的文件转储到verbose stream中。
之后,您可以将详细流重定向到输出流(4>&1
)并将其记录为文件。
示例:
Copy-Item... -Verbose 4>&1 | Out-file log.txt
其他信息可以在about_Redirection中找到。