L'étape deux était de créer une boucle renommage de dossiers si dossier de même nom étaient présent. j'avais réussi a le faire mais la solution n'a pas été retenue, car le script renommait a partir des lignes identiques de la colonne destination de la feuille CSV.
J'ai donc fait un script qui fait le boulot comme l'équipe le demande, mais sans se baser sur une feuille CSV :
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Clear-Host ForEach-Object { if (!(Test-Path -Path "H:\Nouveau dossier" -PathType Container)) { New-Item -Path "H:\Nouveau dossier" -ItemType "directory" | Out-Null } } $src = "C:\Users\Documents\scripts\script_de_recherche_de_doublons\csv_temporaire" $dst = "H:\Nouveau dossier" $nvdoss = "$dossier2-$dossier1" $destfinale = "$dst\$nvdoss" #Tronquage chemin source pour verifier le nom du dernier dossier $nomdedossier1 = $src $T=$nomdedossier1.Split("") Write-Host "Nom de dossier" -ForegroundColor Green Write-Host "------------------------------------------------------" $t[-1] # prend le dernier élément $dossier1=$t[-1] Write-Host "------------------------------------------------------" #mise en variable du dossier destination $destination = Get-ChildItem "H:\Nouveau dossier" #affichage du dossier destination $destination #Tronquage chemin source en remontant d'un niveau pour nommage du dossier qui sera copié $nomdedossier2 = "$src" $T2=$nomdedossier2.Split("\") Write-Host "Nom de dossier -1 niveau" -ForegroundColor green Write-Host "--------------------------------------------------------" $t2[-2] # prend le dernier élément #Nom du fichier qui sera écrit Write-Host "--------------------------------------------------------" $dossier2=$t2[-2] #renommage du dossier $nomdedossier3 = "$destination" $T1=$nomdedossier3.Split("\") Write-Host "nom du dossier présent" -ForegroundColor green Write-Host "---------------------------------------------------------" $t1[-1] # prend le dernier élément Write-Host "---------------------------------------------------------" $dossier3=$t1[-1] #Boucle de test de présence de répertoire, et copie avec renommage si répertoire de même nom présent if ($dossier1 -like $dossier3) {Write-Host "Dossier de même nom déjà présent ; nouveau nom du dossier $dossier1" = "$dossier2-$dossier1" -ForegroundColor yellow Copy-Item -Path ($src ) -Destination $destfinale -Recurse -PassThru} else {Write-Host "Pas de dossier de même nom ; copie du dossier sans modifications" -ForegroundColor green copy-Item -Path ($src ) -Destination $dst -Recurse -PassThru }
Ce script renomme un dossier si un dossier présent a le même mon, il renomme le dossier avec le nom du répertoire parent-nom de dossier.
Le problème c'est que je lui indique le chemin cible lors de la boucle de test.
quand je l’intègre a mon autre script, il me renomme tous les dossiers déjà écrit!!
Je bloque complètement pour intégrer ce script au premier et qu'il fasse la même chose mais uniquement lorsqu'il y a un dossier de même nom dans le répertoire cible.
Merci de votre aide.
Et passez de bonnes fêtes de fin d'année.![]()
Partager