J'ai essayé d'obtenir une liste de répertoire très spécifique sans succès jusqu'à présent.Liste de répertoire de deux niveaux avec Powershell
Disons que j'ai une structure de dossiers comme celui-ci:
- C: \ inetpub \ updates \ updatefolder1
- C: \ inetpub \ updates \ updatefolder1 \ Web \
- C: \ inetpub \ mises à jour \ updatefolder1 \ Web \ (code du site, la structure continue)
- C: \ inetpub \ updates \ updatefolder1 \ scripts \ (scripts db)
- C: \ inetpub \ updates \ updatefolder2
- C: \ inetpub \ updates \ updatefolder2 \ Web \ (code du site, la structure continue)
Maintenant, quand je l'utilise foreach, il ressemblera à ceci:
$folders = Get-ChildItem $UpdateDir -Directory -Recurse -Depth 1 | Select-Object FullName
ForEach($folder in $folders) {
$folder = folder.TrimStart("@{FullName=").TrimEnd("}") #To get a clean name
}
le résultat être comme suit:
C:\inetpub\updates\updatefolder1
C:\inetpub\updates\updatefolder2
C:\inetpub\updates\updatefolder1\Web\
C:\inetpub\updates\updatefolder1\Web\ (site code, the structure goes on)
C:\inetpub\updates\updatefolder1\Scripts\ (db scripts)
C:\inetpub\updates\updatefolder2\Web\ (site code, the structure goes on)
Ce qui n'est pas correct. Il devrait ressembler à ceci:
C:\inetpub\updates\updatefolder1
C:\inetpub\updates\updatefolder1\Web\
C:\inetpub\updates\updatefolder1\Web\ (site code, the structure goes on)
C:\inetpub\updates\updatefolder1\Scripts\ (db scripts)
C:\inetpub\updates\updatefolder2
C:\inetpub\updates\updatefolder2\Web\ (site code, the structure goes on)
Toutes les idées fraîches? J'ai essayé plusieurs choses, autres que foreach loop, toujours pas de chance.
Merci d'avance.
1. Le code que vous avez posté ici semble avoir beaucoup de fautes de frappe. 2. Qu'essayez-vous d'accomplir? 3. Les deux résultats que vous avez affichés en question semblent identiques sauf la séquence/l'ordre. Pouvez-vous s'il vous plaît vérifier une fois et confirmer? – SavindraSingh
Le problème est le hack horrible que vous utilisez pour obtenir le nom complet. Supprimez toute la boucle 'ForEach' et remplacez la première ligne par' $ folders = Get-ChildItem $ UpdateDir -Directory -Recurse -Depth 1 | Select-Object -Expand FullName' – TheMadTechnician
@SavindraSingh Typos? Où ? Autre que le fait que j'ai oublié d'ajouter la variable pour réellement sortir. – Ramil