Как переместить файлы из старой структуры папок в новую?

Я хочу изменить мою существующую структуру папок. У меня было дерево файлов, которое было организовано следующим образом:

Client Name
  State/Province
    City
      Order Number

Но я изменил его, добавив адрес перед номером заказа, разделенным дефисом, как таковой:

Client Name
  State/Province
    City
      Order Number - Address

Я создал новую структуру папок с помощью макроса, который у меня был, который сгенерировал оригинал, и я решил, что это намного проще, чем переименовать существующие папки.

Итак, теперь я хочу загрузить пустые папки на свой сервер, но прежде чем я это сделаю, я хочу взять файлы со всей старой структуры и поместить их в новую.

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

Как бы я это сделал? VBA, Powershell, Batch Command? Я не очень хорошо разбираюсь в PS.

1 ответ

Решение

Используйте цикл foreach с командлетами Powershell Get-ChildItem, Copy-Item и Test-Path:

#Get all address subfolders
$addr_folders = Get-ChildItem c:\"Client Name"\State/Province\City\ -recurse | Where-Object {$_.PSIsContainer -eq $True}

#Loop through all address subfolders
foreach ($address in $addr_folders)
{
  #Copy contents from existing subfolder path to new folder
  if (Test-Path c:\"Client Name"\State/Province\City\"Order Number"\$address)
    {
   Copy-Item c:\"Client Name"\State/Province\City\"Order Number" c:\"Client Name"\State/Province\City\"Order Number - " $address
    }
}
Другие вопросы по тегам