@RedTea

Как копировать файлы по маске со всей файловой структурой?

Добрый день!

Не смог найти решение задачи, может кто подскажет, мне на powershell копировать файлы по маске со всеми промежуточными папками, например:

- SourceFolder
file1.txt
file1.log
- Subfolder1
file2.txt
file2.log
- SubSubFolder
file3.txt
doc3.txt

При копировании все log файлов должно получаться:
- SourceFolder
file1.log
- Subfolder1
file2.log

Я использую строку:
Get-ChildItem $QUIK -filter "*.log" -Recurse | ForEach-Object { Copy-Item $_.fullname -Destination $BackupFolder -Container }


Он складывает все логи из подпапок, но складывает только в корневую.

Как возможно копировать логи с файловой инфраструктурой где они лежат?
  • Вопрос задан
  • 489 просмотров
Пригласить эксперта
Ответы на вопрос 5
@Hanharr
Как вариант:

$TargetFolder = 'F:\temp\test1'
$DestinationFolder = 'F:\temp\test2'
Get-ChildItem $TargetFolder -Recurse |
    Where-Object { $_.Name -match '.log$' -and !$_.PsIsContainer } |
        Copy-Item -Destination { mkdir $_.DirectoryName.Replace("$TargetFolder","$DestinationFolder") -Force }
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
foreach {$file = $_; $destination = (join-path $BackupFolder $(Split-Path $file.Directory -NoQualifier)); if (!(test-path $destination)) {New-Item -itemtype Directory -Path $destination}; Copy-Item $file.fullname -Destination $destination -Container}
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
ROBOCOPY
Ответ написан
Комментировать
@res2001
Developer, ex-admin
xcopy
Ответ написан
Комментировать
Diman89
@Diman89
Total Commander
при нажатии F5 написать точное имя файла (если оно одинаковое во всех директориях), либо маску
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы