Назад | Перейти на главную страницу

Скрипт Powershell для копирования файла с именем 'dat' из нескольких папок

Я пытаюсь скопировать файл с именем "dat". У этого файла нет расширения. Дело в том, что в родительской папке «Personal» у меня есть 500 папок, и все эти 500 папок имеют файл «dat». Я заинтересован в том, чтобы скопировать все эти файлы dat и поместить их в каталог назначения.

Поэтому, когда я вставляю эти файлы 'dat' в свой целевой каталог, я надеюсь назвать их следующим образом:

"Folder_they_were_residing_in.dat"

Таким образом, все файлы dat будут переименованы в имя_папки, в котором они находились, с расширением'dat '.

Это возможно?

Настроить $source и $dest при необходимости добавьте косую черту в конце.

$source = "H:\personal\"
$dest   = "H:\archive\"

Get-ChildItem -Recurse -Path $source |
    Where-Object { $_.PsIsContainer -eq $false -and $_.Name -eq "dat" } |
        ForEach-Object { $_.CopyTo( $( $dest + $_.Directory.Name + ".dat" ), $true ) }
PS H:\> foreach($_ in Get-ChildItem dat -Recurse) { Copy-Item $_.Fullname H:\dest\$($_.Directory.ToString().Split("\")[-1])`.dat }