¿Cómo contar todas las líneas de código en un directorio recursivamente en Windows?
21
En una máquina con Windows 7, me gustaría una forma rápida de determinar el número de líneas en todos los archivos en un árbol de directorios, para archivos de una extensión dada. ¿Hay alguna buena manera de hacer esto?
Estoy familiarizado con wc, desearía que hubiera un equivalente W7.
Quillbreaker
@ (Quillbreaker) Hay. Todo el kit de herramientas de línea de comandos de Linux / Unix está disponible para TODAS las plataformas basadas en Windows. gnuwin32.sourceforge.net
shawty
Respuestas:
41
PowerShell es una opción.
PS D:\Scratch\maweeras\superuser> dir -Recurse *.txt | Get-Content | Measure-Object -Line
Lines Words Characters Property
----- ----- ---------- --------
168
proporcione evidencia y una solución alternativa si lo anterior es incorrecto. Luego eliminaré / corregiré mi respuesta.
Maweeras
2
Si bien su respuesta es útil y aceptada por el OP, no responde correctamente la pregunta del OP. El problema está en el primer comando de su solución: dir -Recurse *.txtsolo procesará directorios cuyos nombres coincidan *.txt, mientras genera todos los archivos que encuentra en esos directorios y sus subárboles. Pero el OP quería procesar todos los directorios y generar solo los archivos que coinciden *.txt. Para hacer eso, lo usarías dir -Recurse -Include *.txt.
Cinnam
1
Esto es incorrecto, la ayuda de Windows en Get-ChildItem(que dires un alias de) afirma que Get-ChildItem –Path "*.txt" -Recursees todo lo que se necesita para obtener "todos los archivos .txt en el directorio actual y sus subdirectorios". enlace: technet.microsoft.com/library/hh849800.aspx
Andrew Leap
@AndrewLeap Lo probé nuevamente: en Win8 con PowerShell 4.0 funciona como usted dice. Sin embargo, en Win7 con PowerShell 2.0 tiene el problema que describí. dir -Recurse -Include *.txtparece tener los resultados deseados en ambas versiones.
Cinnam
¿Cómo podría alguien usar esto para registrar AMBOS * .txt Y * .java (total combinado)?
Jeremy Moritz
3
Para expandir la respuesta anterior de maweeras (lo siento, no hay suficiente representante para comentar), puede buscar múltiples extensiones de archivo pasando una matriz delimitada por comas a -Incluir.
Respuestas:
PowerShell es una opción.
fuente
dir -Recurse *.txt
solo procesará directorios cuyos nombres coincidan*.txt
, mientras genera todos los archivos que encuentra en esos directorios y sus subárboles. Pero el OP quería procesar todos los directorios y generar solo los archivos que coinciden*.txt
. Para hacer eso, lo usaríasdir -Recurse -Include *.txt
.Get-ChildItem
(quedir
es un alias de) afirma queGet-ChildItem –Path "*.txt" -Recurse
es todo lo que se necesita para obtener "todos los archivos .txt en el directorio actual y sus subdirectorios". enlace: technet.microsoft.com/library/hh849800.aspxdir -Recurse -Include *.txt
parece tener los resultados deseados en ambas versiones.Para expandir la respuesta anterior de maweeras (lo siento, no hay suficiente representante para comentar), puede buscar múltiples extensiones de archivo pasando una matriz delimitada por comas a -Incluir.
Así por ejemplo:
fuente
Estoy usando la herramienta gratuita y lite http://www.locmetrics.com
fuente
Lo siguiente funciona en cmd:
O en un [.bat]:
fuente