2017-01-31 6 views
1

Я пытаюсь скопировать целую кучу файлов, используя Powershell, из одного каталога в другой на моем компьютере.Копирование папок с подстановочными знаками

Я использовал Get-ChildItem C:\Users\Tom\Google Drive\My Files\*\Assessment 1\*, чтобы определить, что это был путь, который я тоже хотел скопировать, и я знаю о Copy-Item, но я хочу сохранить части имени пути при копировании.

Пример:

Если я копирую из C:\Users\Tom\Google Drive\My Files\Cool Stuff\Assessment 1\* Я хочу, чтобы файлы, чтобы перейти к папке, которая создается под названием C:\Users\Tom\Archive\Cool Stuff\Assessment 1

В то время как, если я копирую из C:\Users\Tom\Google Drive\My Files\New Stuff\Assessment 1\*

Я хочу, чтобы файлы идти в папку, которая создана под названием C:\Users\Tom\Archive\New Stuff\Assessment 1

ответ

2

Командлет Get-ChildItem можно использовать для рекурсии у найти все Assessment 1 папки внутри базового каталога, а затем удалить основной путь, используя -replace, наконец, скопировать элементы, используя Copy-Item команду:

$baseDir = 'C:\Users\Tom\Google Drive\My Files\' 
$destination = 'C:\Users\Tom\Archive\' 

Get-ChildItem $baseDir -directory -Filter 'Assessment 1' -Recurse | ForEach-Object { 
    $newPath = Join-Path $destination ($_.FullName -replace [regex]::Escape($baseDir)) 
    Copy-Item $_.FullName $newPath -Force -Recurse 

} 
+0

Большое спасибо! –

Смежные вопросы