Если результирующий каталог и маски совпадают, то можно сократить до (не проверялось)
Любой язык - [решено] Скопировать файлы из папок
Спасибо!
Код: Выделить всё
$fld_src = 'Источник', 'Источник1', 'Источник2'
$fld_dst = 'Результат'
$flt = '*.txt'
dir $fld_src -rec -filt $flt -file|%{$i=0}{
if (!(test-path (
$dst = (gi $fld_dst).fullname+'\'+$_.directory.name
))){md $dst|out-null}
$fdst = $dst+ '\' + $_.basename
while (test-path ($fdst + $_.extension)){
$i = [int] $(if($fdst -match '.*_copy\d+'){
$fdst -replace '.*_copy(\d)','$1'
} else {0}) + 1
$fdst = $dst + '\' + $($_.basename -replace '_copy\d+') + '_copy' + $i
}
move $_.fullname ($fdst + $_.extension)
}