Question
get-childitem option demande d'aide
- martin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 3
- Remerciements reçus 0
Je souhaiterais lister les sous répertoires d’un dossier avec la fonction get-childitem ou ls mais uniquement les dossiers sans les fichiers. En faisant un get-childitem on aperçoit le mode (-d) qui correspond à un dossier mais comment faire pour exclure les fichiers ?
Merci d’avance pour votre aide
Martin
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
tu trouveras une réponse dans ce tutoriel .
Bonne lecture
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- martin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 3
- Remerciements reçus 0
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
[code:1]Les propriétés de type NoteProperty,de la classe FileInfo, jouent un rôle particulier, en dehors du fait qu'elle commence toutes par PS, elles sont ajoutées par le provider pour faciliter les traitements.
La propriété PSIsContainer, de type booléen, détermine si l'instance, renvoyée par Get-Childitem, est un containeur ou pas. Cette propriété se retrouve pour chaque élément fournis par le provider manipulant un espace de noms.
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0> dir
Répertoire : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS\system32\WindowsPowerShell\v1.0
Mode LastWriteTime Length Name
----
----
d---- 31/10/2009 15:34 <DIR> Examples
d---- 16/01/2010 18:05 <DIR> fr-FR
d---- 08/06/2011 20:22 <DIR> Modules
16/07/2009 11:21 27338 Certificate.format.ps1xml
16/07/2009 11:22 126976 CompiledComposition.Microsoft.PowerShell.GPowerShell.dll
16/07/2009 11:21 27106 Diagnostics.format.ps1xml
16/07/2009 11:21 72654 DotNetTypes.format.ps1xml
16/07/2009 11:21 24857 FileSystem.format.ps1xml
... # n fichiers
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0>
[/code:1]
On filtre sur la propiété PSisContainer :
[code:1]
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0> dir|Where {$_.PSisContainer}
Répertoire : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS\system32\WindowsPowerShell\v1.0
Mode LastWriteTime Length Name
----
----
d---- 31/10/2009 15:34 <DIR> Examples
d---- 16/01/2010 18:05 <DIR> fr-FR
d---- 08/06/2011 20:22 <DIR> Modules
# aucun fichier
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0>
[/code:1]
Dans la prochaine version de Powershell le cmdlet Get-ChidlItem proposera un paramètre supplèmentaire Attributes, un exemple sur ce blog : www.thomasmaurer.ch/tag/powershell-3-0/
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
[code:1]
PS C:\Users\Laurent> Get-ChildItem -ad
Directory: C:\Users\Laurent
Mode LastWriteTime Length Name
----
----
d-r-- 4/22/2011 9:30 PM Contacts
d-r-- 9/20/2011 9:29 PM Desktop
d-r-- 4/24/2011 7:50 PM Documents
d-r-- 9/20/2011 10:31 PM Downloads
d-r-- 4/22/2011 9:30 PM Favorites
d-r-- 4/22/2011 9:30 PM Links
d-r-- 4/22/2011 9:30 PM Music
d-r-- 4/22/2011 9:30 PM Pictures
d-r-- 4/22/2011 9:30 PM Saved Games
d-r-- 4/22/2011 9:30 PM Searches
d-r-- 4/22/2011 9:30 PM Videos
PS C:\Users\Laurent> cd hklm:
#Le provider de registry ne connait pas les attributs spécifique aux fichiers
PS HKLM:\> Get-ChildItem -ad
Get-ChildItem : A parameter cannot be found that matches parameter name 'ad'.
At line:1 char:15
+ Get-ChildItem -ad
+ ~~~
+ CategoryInfo : InvalidArgument: (:«») [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
[/code:1]
J'en déduit que le paramètre Attribut est dynamique.
Ceci dit la première approche, reste valide pour ces deux providers :
[code:1]
PS HKLM:\> dir |? {$_.psiscontainer}
Hive: Registry::HKEY_LOCAL_MACHINE
Name Property
----
BCD00000000
COMPONENTS StoreFormatVersion : {48, 0, 46, 0...}
StoreArchitecture : {0, 0, 0, 0}
HARDWARE
SAM
Schema
SOFTWARE (default) :
SYSTEM
PS HKLM:\> c:
PS C:\Users\Laurent> dir |? {$_.psiscontainer}
Directory: C:\Users\Laurent
Mode LastWriteTime Length Name
----
----
d-r-- 4/22/2011 9:30 PM Contacts
d-r-- 9/20/2011 9:29 PM Desktop
d-r-- 4/24/2011 7:50 PM Documents
d-r-- 9/20/2011 10:31 PM Downloads
d-r-- 4/22/2011 9:30 PM Favorites
d-r-- 4/22/2011 9:30 PM Links
d-r-- 4/22/2011 9:30 PM Music
d-r-- 4/22/2011 9:30 PM Pictures
d-r-- 4/22/2011 9:30 PM Saved Games
d-r-- 4/22/2011 9:30 PM Searches
d-r-- 4/22/2011 9:30 PM Videos
PS C:\Users\Laurent>
[/code:1]
Il y en a quelques-uns/unes qui vont se prendre les pieds dans le tapis
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- martin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 3
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- get-childitem option demande d'aide