Copies a set of files recursively and recreates subfolders and files in another location.
# Copy XML files from subfolders to another drive and create subfolders. $SourcePath = 'G:\Prod\' $TargetPath = 'E:\SQLScripts\' $FileFilter = '*.xml' Get-ChildItem $SourcePath -filter $FileFilter -recurse | ForEach-Object { $targetFile = $TargetPath + $_.FullName.SubString($SourcePath.Length); $DestFolder = Split-Path $targetFile if (-not (Test-Path $DestFolder)) { New-Item -ItemType Directory -Path $DestFolder #-WhatIf } Copy-Item $_.FullName -destination $targetFile #-WhatIf }