# Синхронизация каталогов с эталонным (с фильтрацией) # Подобная синхронизация может применяться для обновления данных в каталогах пользователей, на основе эталонного. # Например, для обновления версии приложения. # Фильтрация разделена по дирректориям и файлам (расширениям, в данном случае). # Это может быть полезно, если у приложения есть пользовательская часть данных и общая (базовая), # а при обновлении пользовательскую нужно сохранять. # $pathsys = "f:\PSC" $content_d = Get-ChildItem $pathsys\System -filter * -exclude catalog,data,word,templates,Prices | where { $_.PSIsContainer -eq $true } $content_f = Get-ChildItem $pathsys\System -filter * -exclude *.zip,*.tmp,*.bak,*.psc | where { ! $_.PSIsContainer -eq $true } $users = Get-ChildItem $pathsys\Users -filter * | where { $_.PSIsContainer -eq $true } Foreach($user in $users) { Foreach($d in $content_d) { Copy-Item $d.FullName $pathsys\Users\$user\Program\System\ -Force } Foreach($f in $content_f) { if ($f.name -eq "Program.exe") { Copy-Item $f.FullName $pathsys\Users\$user\Program\System\Program_$user.exe -Force } else { Copy-Item $f.FullName $pathsys\Users\$user\Program\System\ -Force } } }