Bonjour à tous,

j'aurais besoin d'aide dans un script que je réalise. J'ai une arboresence de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
C:\Script\
    |-fichier.ps1
    |-Dossier1
         |-fich.ps1
         |-fich2.ps1
    |-Dossier2
         |-fich3.ps1
Je voudrais pouvoir lister l'ensemble des fichiers .ps1 présents dans mon répertoire Script, et dans ses sous répertoires. Je veux afficher les données de cette forme :
1 - fichier.ps1
2 - fich.ps1
3 - fich2.ps1
4 - fich3.ps1
Néanmoins dans mon code, dans ma variable de fichier j'aimerais pouvoir stocker sois le chemin complet vers le fichier sois son dossier parent s'il n'est pas à la racine. Donc :
fichier.ps1
Dossier1\fich.ps1
...etc
Tout ceci dans le but de pouvoir par la suite exécuter le fichier sélectionné par l'utilisateur. Je vous montre mon code actuel :

Code : 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
$i=1
$chemin = "C:\Scripts\"
$Files = Get-ChildItem $chemin 
Write-Host "Liste des scripts presents : "
foreach ($File in $Files)
{
	Write-Host " " $i "- " $File
	$i++
}
$ret=Read-Host "Quel fichier souhaitez vous executer ? "
if(($ret -le $i) -and ($ret -ge 1))
{
	$rep=Read-Host "Etes vous sur de vouloir executer le fichier " $Files[$ret-1] " (O - N) ?"
	if(($rep -eq 'O') -and ($rep -eq 'o'))
	{
		Write-Host  "Execution du fichier " $Files[$ret-1]
		$cmd = $chemin + $Files[$ret-1]
		Start-Process powershell.exe $cmd
	}
	else
	{
		Write-Host  "Execution annulee"
	}
}
else 
{ 
	Write-Host "Le nombre saisi est incorrect"
}
Comme vous pouvez le voir je liste uniquement les fichiers présents dans Scripts et non pas dans les dossiers. De plus je ne sais pas comment faire pour ne lister que les .ps1 .

Si quelqu'un peut m'aider, merci beaucoup !