Comment récupérer récursivement tous les fichiers avec une extension spécifique dans PowerShell?
Pour un dossier spécifique, j'ai besoin de lister tous les fichiers avec l'extension .js
même si imbriqués dans des sous-dossiers à n'importe quel niveau.
Le résultat pour la sortie de la console doit être une liste de noms de fichier sans extension, ligne par ligne, pour être plus facilement copier et le coller dans une autre application.
Pour le moment, je suis en train d'essayer, mais à la sortie de la console je reçois plusieurs méta-informations et non d'une simple liste.
Get-ChildItem -Path C:\xx\x-Recurse -File | sort length –Descending
Pourriez-vous svp me donner quelques conseils?
source d'informationauteur GibboK
Vous devez vous connecter pour publier un commentaire.
En cas de tri par Longueur n'est pas une nécessité, vous pouvez utiliser le
-Name
paramètre d'avoirGet-ChildItem
retour juste le nom, puis utilisez[System.IO.Path]::GetFileNameWithoutExtension()
pour supprimer le chemin et l'extension:En cas de tri par longueur souhaitée, de la baisse de la
-Name
paramètre de sortie et de laBaseName
de la propriété de chaqueFileInfo
objet. Vous pouvez rediriger la sortie (dans les deux exemples) pourclip
de le copier dans le presse-papiers:Si vous voulez que le chemin d'accès complet, mais sans l'extension, substitut
$_.BaseName
avec:L'option simple est d'utiliser le
.Name
propriété de laFileInfo
élément dans le pipeline, puis de supprimer l'extension:Il y a deux méthodes pour le filtrage de fichiers: d'expansion à l'aide d'un Générique, ou à l'aide d'une Expression Régulière (Regex).
Avertissement: L'expansion de la méthode a l'inconvénient qu'elle correspond à des fichiers qui ne doivent pas être mis en correspondance, comme
*.jsx
.Ensuite, vous pouvez les trier par nom ou par taille du fichier:
Format-il d'une simple liste de chemin d'accès et nom de fichier:
Pour supprimer l'extension de fichier, vous pouvez utiliser un select pour carte le résultat:
Mettre tous ensemble, il y a également une version courte, qui vous ne devriez pas utiliser dans les scripts, car c'est à peine lisible: