Question pb de boucle avec une variable

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 12 ans 9 mois #15041 par maiden65
pb de boucle avec une variable a été créé par maiden65
bonjour,

Décidément je ne suis pas encore un familier du PS.

Voila mon pb. Je souhaite récupérer les lecteurs d'un ordi et lister des fichiers par rapport a ces lecteurs

tout d'abord j'ai fait
[code:1]
$lst_dsk=(get-wmiobject win32_logicaldisk | format-wide -column 1 deviceid )
[/code:1]

Ensuite je souhaite utiliser cette liste pour faire
[code:1]
foreach ($lecteur in echo $lst_dsk) { gci $lecteur -recurse -Include *.csv }
[/code:1]

Mais j'ai le message suivant

[code:1]
Get-ChildItem : Impossible de trouver le chemin d'accès « E:\Formation\powershell\Script\Microsoft.PowerShell.Commands.
Internal.Format.FormatEndData », car il n'existe pas.
Au niveau de ligne : 1 Caractère : 42
+ foreach ($lecteur in echo $lst_dsk) { gci <<<< $lecteur -recurse -Include *.mp3 }
+ CategoryInfo : ObjectNotFound: (E:\Formation\po...t.FormatEndData:«»String) [Get-ChildItem], ItemNotFound
Exception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
[/code:1]

Or quand je fait un echo $lst_dsk j'ai bien ma liste de lecteur


Merci de m'aider car là je ne comprend pas...

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

Plus d'informations
il y a 12 ans 9 mois #15042 par Laurent Dardenne
Salut,
maiden65 écrit:

Merci de m'aider car là je ne comprend pas...

On utilise les cmdlets de formatage pour .... formater :P
Par contre il doivent être utilisés en dernier dans ton traitement, pour justement formater son résultat.
Donc, tu retires l'appel du cmdlet Format-Wide, peut être devras-tu le remplacer par un appel à Select-Object.
Ainsi tu récupères une collection d'objet et pas une collection d'objet de formatage (Internal.Format.FormatEndData).
maiden65 écrit:

Décidément je ne suis pas encore un familier du PS.

Un peu plus chaque jour :)

Tutoriels PowerShell

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

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 12 ans 9 mois #15043 par maiden65
Réponse de maiden65 sur le sujet Re:pb de boucle avec une variable
Merci..
J'ai réussi a faire cette commande

[code:1]
(get-wmiobject win32_logicaldisk -filter \"drivetype=3\" | select-object deviceid | foreach { gci $_.deviceid -Include *.csv -recurse } )
[/code:1]

J'ai bien une liste des fichiers.

Toutefois je souhaiterais limiter mon affichage au nom du répertoire

Dans l'affichage j'ai un moment
[code:1]
Répertoire : J:\histo_table>
[/code:1]

Mais je ne trouve pas le nom du champs correspondant.
Qqun a une idée ??

Merci d'avance

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

Plus d'informations
il y a 12 ans 9 mois #15045 par Charles
Réponse de Charles sur le sujet Re:pb de boucle avec une variable
Tout dépends ce que tu entends par limiter l'affichage au nom du répertoire.
Si tu veux réellement uniquement le nom du répertoire:

[code:1]
(get-wmiobject win32_logicaldisk -filter \"drivetype=3\" | select-object deviceid | foreach { gci $_.deviceid -Include *.csv -recurse } ) | Select DirectoryName
[/code:1]

Ce code te permettras de récupérer uniquement les noms des répertoires où se trouvent des fichiers au format CSV dans tes disques.

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

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 12 ans 9 mois #15049 par maiden65
Réponse de maiden65 sur le sujet Re:pb de boucle avec une variable
Super ca marche !!
Mais comme cela me donnait le nom du répertoire pour chacun des fichiers trouvés j'ai rajouté unique

[code:1]
PS E:\Formation\powershell\Script> (get-wmiobject win32_logicaldisk -filter \"drivetype=3\" | select-object deviceid,files
ystem | foreach { gci $_.deviceid -Include *.mp3 -recurse } ) | Select -unique DirectoryName
[/code:1]

Et là c'est pil-poil...

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

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