Out-File при копировании и удалении элементов - PullRequest
0 голосов
/ 20 июня 2019

У меня есть скрипт для резервного копирования и удаления файлов поколениями (группой).Мне нужно добавить некоторые записи, какие файлы он копирует, а также какие он удаляет.Во всех моих предыдущих сценариях я использовал 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 Ответ

1 голос
/ 20 июня 2019

Добавьте переключатель -Verbose к командам Copy-Item и Remove-Item.При этом скопированные / удаленные файлы будут выгружены в подробный поток .

После этого вы можете перенаправить подробный поток в выходной поток (4>&1) и записать его в файл.

Пример:

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

Дополнительную информацию можно найти в about_Redirection .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...