PDA

Показать полную графическую версию : копирование файлов из множества папок в одну


oka08@vk
25-03-2019, 16:10
Здравствуйте необходим скрипт который бы искал в каталоге все папки с определенным названием, в этих папках находил файлы *.pdf и копировал их в другую папку. на просторах интернета нашел что то похожее, но он копирует весь путь до папок, т.е. в итоге в нужной папке получается куча подкаталогов. мне нужно чтобы копировались только файлы. и при совпадении имен - изменялось имя.

$sSourceFolder = "C:\Users\Администратор\Documents"
$sDestFolder = "C:\Users\Администратор\Documents\123"

if(Test-Path -Path $sSourceFolder -PathType Container) {
if(Test-Path -Path $sDestFolder -PathType Container) {
Get-ChildItem -Path $sSourceFolder -Include "*.pdf" -Recurse |`
Where-Object -FilterScript { $_.DirectoryName -like "*evro*" } |`
ForEach-Object -Process {
$DestPath = $sDestFolder + ($_.DirectoryName).Substring($sSourceFolder.Length)

if(-not (Test-Path -Path $DestPath -PathType Container)) {
New-Item -Path $sDestFolder -Name ($_.DirectoryName).Substring($sSourceFolder.Length + 1) -ItemType Container | Out-Null
}

Write-Host $_.FullName
Copy-Item -Path $_.FullName -Destination $DestPath -Force
}
} else {
Write-Host "Destination folder [$sDestFolder] not found." -ForegroundColor Red
}
} else {
Write-Host "Source folder [$sSourceFolder] not found." -ForegroundColor Red
}

этот скрипт ищет в папке C:\Users\Администратор\Documents все папки с названием "evro" в этих папках находит файлы *.pdf и все это копирует в папку C:\Users\Администратор\Documents\123 , но мне нужно чтобы он копировал только сами файлы без сохранения путей.

Iska
25-03-2019, 18:16
и при совпадении имен - изменялось имя. »
Как?

oka08@vk
26-03-2019, 11:09
в принципе это не обязательно, но хотелось бы чтобы скрипт проверял файлы если они разные по размеру или дате то добавлял еще один файл в конце там число по порядку. Вообще достаточно даже ярлыки этих файлов в папку назначения вывести.




© OSzone.net 2001-2012