Bonjour,

J'essaie de réaliser un script qui supprime automatiquement des fichiers dans des sous dossiers au nom aléatoire.
Par exemple, j'ai dans ce dossier: C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files 6 sous dossiers dont le nom est généré par le logiciel, je souhaite dans chaque sous dossier supprimer tout le contenu sauf le contenu d'un sous-sous-dossier.
Je coince un peu... Voici ce que j'ai écris (c'est mon premier donc un peu d’indulgence )

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
$username=[Environment]::UserName;
$folder="C:\Users\"+$username+"\AppData\Roaming\Pyramiq\DLex\Files";
$i=0; 
foreach ($element in $(gci $folder))   ---------- Compte le nombre de sous répertoire
{
    if ($element.PsIsContainer -eq $true) 
    {
        $i++
    }
}; 
echo $i; ---------- affiche le nombre de sous repertoire trouvé (dans mon cas 6)
if ($i=1) ---------- je déclare un tableau listname qui va contenir le nom de chaque sous repertoire. Bizarrement si je me contente de $listname=@() ça ne fonctionne pas.
{
$listname=@("");
}
if ($i=2)
{
$listname=@("","");
}
if ($i=3)
{
$listname=@("","","");
}
if ($i=4)
{
$listname=@("","","","");
}
if ($i=5)
{
$listname=@("","","","","");
}
if ($i=6)
{
$listname=@("","","","","","");
}
$j=1;
foreach($file in $folder) ---------- j’extrais le nom de chaque sous-répertoire
{
    $listname[$j]=Get-ChildItem -path $file | Select-Object Name; 
    echo $listname[$j]; ---------- j’affiche le nom de chaque sous répertoire (par curiosité)
    $j=$j+1;
}
$j=1;
Do
{
    echo $folder$listname[$j]"\RECUP\*.*"; ---------- c’est là que ça coince… il ne me construit pas le chemin correctement
    $j++;
    #del $folder$listname[$j]"\*.*" ---------- à terme, à la place d’afficher, je voudrais supprimer
    #del $folder$listname[$j]"\EDITED\*.*"
    #del $folder$listname[$j]"\READ\*.*"
    #del $folder$listname[$j]"\RECUP\*.*"
    #del $folder$listname[$j]"\TRANSFER\*.*"
 
}
Until($j -eq $i+1)

Voici ce que ça me retourne. Ça extrait bien le nom de chaque sous-dossier, mais si j'essaie de les incorporer, ça foire complètement. Surement une mauvaise utilisation ou déclaration de variable...

Name
----
169DLEX_SD
170DLEX_SD
73DLEX_SD
ILDLEX_SD
JPMDLEX_SD
SSTDLEX_SD
C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files System.Object[] [1]\RECUP\*.*
C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files System.Object[] [2]\RECUP\*.*
C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files System.Object[] [3]\RECUP\*.*
C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files System.Object[] [4]\RECUP\*.*
C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files System.Object[] [5]\RECUP\*.*
C:\Users\jop21\AppData\Roaming\Pyramiq\DLex\Files System.Object[] [6]\RECUP\*.*
Vous pouvez m'aider?

Merci