Utilisation Robocopy ou Powershell Pour chercher dans le dossier, renommer et déménager

J'essaie de trouver une solution pour cela

par exemple Chemin

C:\Designs\CustomerA\PhotoshopFiles\

C:\Designs\CustomerB\PhotoshopFiles\

C:\Designs\CustomerC\PhotoshopFiles\

Je veux déplacer le dossier PhotoShopFiles en autre (Fichiers clients Photoshop) Et renommez ce dossier en prenant le nom du dossier dans lequel il se trouvait.

Donc, je pourrais avoir une telle structure:

C:\Designs\Customer Photoshop Files\CustomerA

C:\Designs\Customer Photoshop Files\CustomerB

C:\Designs\Customer Photoshop Files\CustomerC
Invité:

Dominique

Confirmation de:

## 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
}

Un exemple d'arbre après le démarrage du script:

> tree C: /f
C:\
└───Designs
├───Customer Photoshop Files
│ ├───CustomerA
│ │ a.jpg
│ │
│ ├───CustomerB
│ │ b.jpg
│ │
│ └───CustomerC
│ c.jpg

├───CustomerA
│ └───PhotoshopFiles
├───CustomerB
│ └───PhotoshopFiles
└───CustomerC
└───PhotoshopFiles

Emilie

Confirmation de:

Prendre un instantané pour PowerShell

$newLocation = "C:\Designs\Customer Photoshop Files"
$folders = Get-ChildItem C:\Designs\ | select name, fullname

foreach ($folder in $folders) {
Move-Item -Path $folder.fullname\PhotoshopFiles\ -Destination $newLocation\$folder.name -whatif
}

Supprimer -whatif, S'il a l'air bien.

Pour répondre aux questions, connectez-vous ou registre