Porównaj ceny domen i usług IT, sprzedawców z całego świata

Użyj Robocopy lub Powershell, aby przeszukać folder, zmienić nazwę i przenieść


Próbuję znaleźć na to rozwiązanie
dawny. droga
C:\Designs\CustomerA\PhotoshopFiles\C:\Designs\CustomerB\PhotoshopFiles\C:\Designs\CustomerC\PhotoshopFiles\

Chcę przenieść folder PhotoShopFiles do innego (Photoshop Client Files) i zmienić nazwę tego folderu, tak aby przyjęła nazwę folderu, w którym się znajdował.
Więc mógłbym mieć taką strukturę:
C:\Designs\Customer Photoshop Files\CustomerAC:\Designs\Customer Photoshop Files\CustomerBC:\Designs\Customer Photoshop Files\CustomerC

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

## Q:\Test\2018\10\23\sf_936862.ps1
#requires -Version 3.0
Get-ChildItem "C:\Designs" -Directory | Where-Object FullName -Notmatch "Customer Photoshop Files"|ForEach-Object {
$Source = Join-Path $_.FullName "PhotoshopFiles\*"
$Target = Join-Path "C:\Designs\Customer Photoshop Files" $_.Name
If (!(Test-Path $Target)){MD $Target -Force| Out-Null}
Get-ChildItem $Source | Move-Item -Destination $Target -Force
}

Przykład drzewa po uruchomieniu skryptu:
> tree C:/f
C:\
└───Designs
├───Customer Photoshop Files
│ ├───CustomerA
│ │ a.jpg
│ │
│ ├───CustomerB
│ │ b.jpg
│ │
│ └───CustomerC
│ c.jpg

├───CustomerA
│ └───PhotoshopFiles
├───CustomerB
│ └───PhotoshopFiles
└───CustomerC
└───PhotoshopFiles
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zrób migawkę dla programu PowerShell
$newLocation = "C:\Designs\Customer Photoshop Files"
$folders = Get-ChildItem C:\Designs\ | select name, fullnameforeach ($folder in $folders) {
Move-Item -Path $folder.fullname\PhotoshopFiles\ -Destination $newLocation\$folder.name -whatif
}

Usuń -whatif jeśli wygląda dobrze.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się