Comment compter toutes les lignes de code d'un répertoire de manière récursive sous Windows?
21
Sur un ordinateur Windows 7, j'aimerais un moyen rapide de déterminer le nombre de lignes dans tous les fichiers d'une arborescence de répertoires, pour les fichiers d'une extension donnée. Y at-il un bon moyen de faire cela?
[Connaissez-vous un programme similaire pour wc (commande de comptage de mots unix) sous Windows?] [1] [1]: stackoverflow.com/questions/247234/…
Je connais bien les wc, j'aimerais qu'il y ait un équivalent W7.
quillbreaker
@ (quillbreaker) Il y a. L'ensemble de la boîte à outils de ligne de commande Linux / Unix est disponible pour TOUTES les plates-formes Windows. gnuwin32.sourceforge.net
shawty
Réponses:
40
Powershell est une option.
PS D:\Scratch\maweeras\superuser> dir -Recurse *.txt | Get-Content | Measure-Object -Line
Lines Words Characters Property
----- ----- ---------- --------
168
veuillez fournir des preuves et une autre solution si ce qui précède est incorrect. Je vais ensuite supprimer / corriger ma réponse.
Maweeras
2
Bien que votre réponse soit utile et acceptée par le PO, elle ne répond pas correctement à sa question. Le problème réside dans la première commande de votre solution: dir -Recurse *.txtil ne traitera que les répertoires dont les noms correspondent *.txt, tout en affichant tous les fichiers trouvés dans ces répertoires et leurs sous-arbres. Mais l'OP souhaitait traiter tous les répertoires en ne produisant que les fichiers correspondants *.txt. Pour ce faire, vous utiliseriez dir -Recurse -Include *.txt.
Cinnam
1
Ceci est incorrect, l’aide de Windows sur Get-ChildItem(qui direst un alias de) indique que Get-ChildItem –Path "*.txt" -Recursec’est tout ce qui est nécessaire pour obtenir "tous les fichiers .txt du répertoire en cours et de ses sous-répertoires". lien: technet.microsoft.com/library/hh849800.aspx
Andrew Leap
@AndrewLeap Je viens de le tester à nouveau - sur Win8 avec PowerShell 4.0, il fonctionne comme vous le dites. Cependant, sur Win7 avec PowerShell 2.0, le problème que j'ai décrit est similaire. dir -Recurse -Include *.txtsemble avoir les résultats souhaités sur ces deux versions.
Cinnam
Comment une personne utiliserait-elle ceci pour enregistrer les DEUX * .txt ET * .java (total combiné)?
Jeremy Moritz
3
Pour développer la réponse de maweeras ci-dessus (désolé, pas assez de représentants pour commenter), vous pouvez rechercher plusieurs extensions de fichier en passant un tableau délimité par des virgules à -Include.
Réponses:
Powershell est une option.
la source
dir -Recurse *.txt
il ne traitera que les répertoires dont les noms correspondent*.txt
, tout en affichant tous les fichiers trouvés dans ces répertoires et leurs sous-arbres. Mais l'OP souhaitait traiter tous les répertoires en ne produisant que les fichiers correspondants*.txt
. Pour ce faire, vous utiliseriezdir -Recurse -Include *.txt
.Get-ChildItem
(quidir
est un alias de) indique queGet-ChildItem –Path "*.txt" -Recurse
c’est tout ce qui est nécessaire pour obtenir "tous les fichiers .txt du répertoire en cours et de ses sous-répertoires". lien: technet.microsoft.com/library/hh849800.aspxdir -Recurse -Include *.txt
semble avoir les résultats souhaités sur ces deux versions.Pour développer la réponse de maweeras ci-dessus (désolé, pas assez de représentants pour commenter), vous pouvez rechercher plusieurs extensions de fichier en passant un tableau délimité par des virgules à -Include.
Donc par exemple:
la source
J'utilise l'outil gratuit et léger http://www.locmetrics.com
la source
Les travaux suivants dans cmd:
Ou dans un [.bat]:
la source