Question get-childitem option demande d'aide

Plus d'informations
il y a 14 ans 4 mois #10594 par martin
Bonjour

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.

Plus d'informations
il y a 14 ans 4 mois #10595 par Laurent Dardenne
Bonjour,
tu trouveras une réponse dans ce tutoriel .

Bonne lecture :)<br><br>Message édité par: Laurent Dardenne, à: 19/11/11 13:25

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #10596 par martin
Merci pour ta réponse mais, j'ai déjà regardé ce forum et je possède le fameux livre \&quot;windows powershell\&quot; présenté dans ce forum, mais je ne cherche pas à exclure un certain type d’extension mais toutes, et récupérer uniquement les dossiers. Si j'utilise \&quot;-exclued\&quot; il faudrait que je connaisse toutes les exceptions existantes (la liste est trop longue) serait-il possible de récupérer dans le \&quot;mode\&quot; du get-childitem uniquement ce qui possède le \&quot;-d\&quot; ou via une autre méthode ?

Merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #10597 par Laurent Dardenne
Il me semble que tu as lu trop rapidement le tuto indiqué :

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.

[code:1]
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0&gt; dir

Répertoire : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS\system32\WindowsPowerShell\v1.0

Mode LastWriteTime Length Name
----

----
d---- 31/10/2009 15:34 &lt;DIR&gt; Examples
d---- 16/01/2010 18:05 &lt;DIR&gt; fr-FR
d---- 08/06/2011 20:22 &lt;DIR&gt; 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&gt;
[/code:1]
On filtre sur la propiété PSisContainer :
[code:1]
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0&gt; 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 &lt;DIR&gt; Examples
d---- 16/01/2010 18:05 &lt;DIR&gt; fr-FR
d---- 08/06/2011 20:22 &lt;DIR&gt; Modules
# aucun fichier
[MTA] C:\WINDOWS\system32\WindowsPowerShell\v1.0&gt;
[/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.

Plus d'informations
il y a 14 ans 4 mois #10598 par Laurent Dardenne
Un exemple avec la v3 ctp1 :
[code:1]
PS C:\Users\Laurent&gt; 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&gt; cd hklm:
#Le provider de registry ne connait pas les attributs spécifique aux fichiers
PS HKLM:\&gt; 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:\&gt; 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:\&gt; c:

PS C:\Users\Laurent&gt; 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&gt;
[/code:1]
Il y en a quelques-uns/unes qui vont se prendre les pieds dans le tapis ;)<br><br>Message édité par: Laurent Dardenne, à: 21/11/11 07:36

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 4 mois #10599 par martin
Merci pour tes réponses , claire et rapide !

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.050 secondes
Propulsé par Kunena