复制最近1小时时间戳的日志文件,并在PowerShell

时间:2017-04-10 07:20:43

标签: powershell-v3.0

我正在尝试使用时间戳将日志文件从源复制到目标。如果在脚本下面的最后1小时内生成了任何日志,则会将文件复制到目标路径中的(source folder_current Date)。该脚本工作正常,但我需要知道在过去1小时内是否没有创建日志。如果是这样,脚本应该创建一个文件,说明最近1小时没有日志,或者它不应该在目标路径中创建文件夹。

$ScriptStart = Get-Date
$PreviousTime = $ScriptStart.AddHours(-1)
$source = 'c:\SOURCE\logfiles'
$dest = 'D:\dest\log'
gci $source -Recurse -File |
    ? {$_.LastWriteTime -lt $ScriptStart -and $_.LastWriteTime -gt $PreviousTime} |
    Copy-Item -Destination $dest\logfoldername

1 个答案:

答案 0 :(得分:0)

将过滤器与行动分开:

$filesToCopy = Get-ChildItem $source -Recurse -File |
               Where-Object {
                   $_.LastWriteTime -lt $ScriptStart -and
                   $_.LastWriteTime -gt $PreviousTime
               }

if ($filesToCopy) {
    $filesToCopy | Copy-Item -Destination $dest\logfoldername
} else {
    'no files to copy' | Set-Content 'C:\path\to\nofile.txt'
}