Question Questions/Réponses d'un vrai débutant

Plus d'informations
il y a 15 ans 4 mois #7998 par Jean-Christophe
Merci Janel pour ces explications très claire :)
je m'aperçois vraiment du nombre important de solution pour résoudre un pb. Il faut après avoir une grande expertise pour savoir laquelle utilisée avec ces avantages et ces défauts.

J'ai changé le sujet du post :)

Mon prochain objectif est le suivant :

grace à la commande suivante j'obtiens l'ensemble des propriété pour un fichier ou répertoire :
[code:1]Get-ChildItem|Get-Member[/code:1]

j'ai la commande :

[code:1]Get-ChildItem|Format-Table fullname,lastwritetime,directory -auto[/code:1]

je souhaiterais extraire de la première commande les propriétés pour les insérer dans la deuxième ligne de code. J'aurais ainsi l'affichage de l'ensemble des propritétés d'un fichier ou rep.

Surement évident pour vous, très peu pour moi.
Je m'y colle dès cet aprem midi et je reviens vers vous quand je bloque ou qui sait si j'ai trouvé une solution :)

JC

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

Plus d'informations
il y a 15 ans 4 mois #7999 par Jean-Christophe
j'ai vraiment des conceptes qui m'échappent ...
Voilà mon pb, encore une fois tout bête :

je fais sur le shell les commandes suivantes :

[code:1]
$test=\"attributes,name\"
Get-ChildItem|Format-Table $test
[/code:1]
le résultat est le suivant :

attributes,name


Celà signifie que le contenu de ma variable n'est pas interprété comme paramètre de la command format-table mais comme données.

J'ai essayé plusieurs syntaxe sans succès.
Une idée ??

(bon je pense que la solution que je proposerais pour le pb cité plus haut est vraiment une usine à gaz, alors que comme d'hab en 1 ligne de code ca sera réglé par les experts. J'espère pouvoir au moins trouver une solution seul avant de connaitre la bonne solution :) )<br><br>Message édité par: Pouic, à: 4/11/10 16:36

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

Plus d'informations
il y a 15 ans 4 mois #8001 par Jacques Barathon
Tu y étais presque :

[code:1]
$test = \&quot;attributes\&quot;, \&quot;name\&quot;
get-childitem | format-table $test -auto
[/code:1]

La différence avec la syntaxe que tu donnais, c'est qu'ici $test est un tableau. Or, c'est ce qu'attend format-table : un tableau de propriétés. Extrait de l'aide de la commande :

Format-Table [[-Property] &lt;Object[]&gt;]

Object[] indique un tableau d'objets. En l'occurrence, on passe en argument un tableau de chaînes de caractères, chaque chaîne étant le nom d'une propriété qu'on veut afficher. Simple, non ? :)

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

Plus d'informations
il y a 15 ans 4 mois #8004 par Jean-Christophe
Effectivement Janel, c'est simple quand on connait les petites subtilités que tu m'as indiqué :)

bon voilà j'ai réussi à réaliser mon objectif. Par contre je pense que c'est bien sur la méthode la pire :)

La voici :

[code:1]
$prop=Get-ChildItem|Get-Member -MemberType Property|ForEach-Object {$_.name}
get-childitem | format-table $prop -autosize
[/code:1]

Bon il y a des inconvénients : vu le nombre trop important de propritété, la commande format-table ne me les affiches pas. N'y a t il pas un moyen de faire apparaitre un ascenseur horizontal voir de faire faire un retour en dessous.
J'avais trouvé la possiblité de formater chaque résultat de chaque propriété à la ligne en incluant directement dans mon foreach le format-table. Mais c'était pas mon objectif de départ.
Si vous avez des commentaires n'hésitez pas ...


bon je vais maintenant me tourner vers un vrai projet. :
Je dois chercher dans une arborescence l'ensemble des répertoires et fichiers qui n'ont plus de propriétaire car ce dernier à vu son compte AD effacé. Lorsque je trouve une ressource répondant à ce critère, je la supprime.

C'est parti.

JC

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

Plus d'informations
il y a 15 ans 4 mois #8005 par Arthur
[code:1]get-childitem | format-table -Property * -AutoSize[/code:1]

J'avoue que je ne pige pas l'utilité de ton exo enfin bon c'est un exo faut pas comprendre. :P

Il ne me semble pas que l'on puisse avoir une barre horizontal dans la console.Enfin j'ai jamais regardé si on pouvait en créer une.
En revanche je pense que l'on peut coder une appli C# ou un snippet qui le permet.
Tu peut aussi utiliser la cmdlet \&quot;Out-Gridview\&quot; par exemple

Sinon bonne chance pour ton projet je ne vais pas te donné de conseils pour que tu cherche tout seul (:evil:) mais si tu as un problème n’hésite pas à post sur le forum.

EDIT : Tout compte fait ma solution n'est pas bonne elle affiche les \&quot;NoteProperty\&quot; en plus des \&quot;Property\&quot;

Message édité par: bilbao, à: 5/11/10 12:29<br><br>Message édité par: bilbao, à: 5/11/10 12:35

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

Plus d'informations
il y a 15 ans 4 mois #8006 par Laurent Dardenne
bilbao écrit:

Il ne me semble pas que l'on puisse avoir une barre horizontal dans la console.Enfin j'ai jamais regardé si on pouvait en créer une.

On peut utiliser les propriétés de la fenêtre :
[code:1]
[MTA] G:\temp&gt; $host.ui.RawUI


ForegroundColor : Gray
BackgroundColor : Black
CursorPosition : 0,155
WindowPosition : 0,106
CursorSize : 25
BufferSize : 320,300 ***
WindowSize : 160,50 * max 160 sous PS !
MaxWindowSize : 160,62
MaxPhysicalWindowSize : 160,62
KeyAvailable : False
WindowTitle : G:\temp

get-childitem | format-table $prop -autosize

AVERTISSEMENT : 8 colonnes ne tiennent pas à l'écran et ont été supprimées.
[/code:1]
Avec 512 pour largeur \&quot;Taille mémoire tampon écran\&quot; tous les champs sont affichés.
Mais à mon avis ce n'est pas très pratique à l'usage, a moins de trouver l'API pour le faire directement dans la console :)

Je regarde ça dés que j'ai un peu de temps.

Tutoriels PowerShell

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

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