55 votes

Powershell - trouve le premier fichier qui correspond à un motif

Je voudrais sélectionner n'importe quel fichier ".xls" dans un répertoire. Le problème est que le dir peut renvoyer différents types.

 gci *.xls
 

reviendra

  • objet [] s'il y a plus d'un fichier
  • FileInfo s'il y a exactement un fichier
  • NULL s'il n'y a pas de fichiers

Je peux traiter avec null, mais comment sélectionner le "premier" fichier?

116voto

Joey Points 148544

Vous pouvez forcer PowerShell en renvoyant un tableau, même si un seul élément est présent en l'enveloppant d'un énoncé en @(...):

@(gci *.xls)[0]

de travail pour chacun de vos trois cas:

  • elle renvoie le premier objet d'une collection de fichiers
  • elle renvoie le seul objet si il y a un seul
  • il retourne $null de il n'y avait pas de n'importe quel objet pour commencer


Il y a aussi l' -First paramètre Select-Object:

Get-ChildItem *.xls | Select-Object -First 1
gci *.xls | select -f 1

qui fonctionne à peu près identiques à ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X