¿Existe una utilidad de línea de comandos de Windows para enumerar los archivos más grandes que exceden el tamaño específico en los subdirectorios?

Respuestas:

29
forfiles /P D:\ /M *.* /S /D +"01/17/2012"  /C "cmd /c if @fsize gtr 209715200 echo @path @fsize @fdate @ftime"

escaneará D: \ y sus subdirectorios, buscará todos los archivos cuyas últimas fechas de modificación sean mayores que "17-ENE-2012" y cuyos tamaños sean mayores o iguales a 200 MB, luego imprima sus detalles.

forfiles se incluye en algunos servidores de Windows, pero no de manera predeterminada en Windows XP. Puede extraerlo de la descarga del "Kit de recursos de Windows Server 2003" en http://www.microsoft.com/download/en/details.aspx?id=17657 (aunque dice que es para Windows Server, se ejecuta en Win XP sin problemas).

learnScrapy
fuente
Excelente: esto hizo lo que quería (tan pronto como fijé la fecha para el Reino Unido 17/01/2012). Gracias.
Umber Ferrule
6

Esto suena como un trabajo para PowerShell

get-childitem

Navegue al directorio en cuestión, verifique las propiedades con:

get-childitem | get-member

length y FullName parecen interesantes, por ejemplo:

get-childitem |ft fullname, length -auto

Una vez que haya dominado los conceptos básicos, intente filtrar con una instrucción where.

get-childitem | where-object {$_.length -gt 10000} |ft fullname, length -auto

Experimenta con 100000

Guy Thomas
fuente
Use Get-ChildItem -recurse para buscar de forma recursiva
themadmax
3

El puerto de utilidades de Linux en UnxUtils contiene el comando find de Linux .

Debería cambiar el nombre de find.exe a otra cosa, por ejemplo, xfind.exe, ya que find es una función integrada en el símbolo del sistema de Windows. Luego puede encontrar todos los archivos de más de 1000000 bytes:

directorio xfind -size +1000000 -print

Aquí está el documento para el comando Linux find , pero no sé cómo se implementó exactamente en UnxUtils y para qué versión de find.

harrymc
fuente
creo GnuWin32 está más al día: gnuwin32.sourceforge.net ... además de que hay siempre Cygwin: cygwin.com
charlatán quijote
@ ~ quack: Tienes razón, solo que el paquete FileUtils en GnuWin32 parece bastante complejo de instalar y requiere bastantes archivos.
harrymc 03 de
lo suficientemente justo. Soy un usuario de Cygwin, personalmente. y tiendo a preferir actualizado a simple de instalar. pero gracias por explicar tu razonamiento.
quack quijote
2

Tome Command Console LE (que acabo recomendando mucho recientemente), un reemplazo gratuito para cmd.exe con muchas características adicionales, tiene un comando para eso:PDIR

pdir /s /(fpn z) /[s10485760,]
  • /s significa recursivamente, ejecuta el comando desde el directorio que deseas buscar.
  • /(fpn z) es el formato para mostrar los resultados, aquí: fullpathfullname size
  • /[s10485760,] significa tamaño = 10 MB o más grande
Snark
fuente
1

El comando find de las utilidades cygwin hace esto. Para su requisito

encuentre rutas completas de archivos en un árbol de directorios que excedan un tamaño específico (digamos 10 MB).

esto da el resultado:

find -size + 10M -type f -printf "% p% s \ n"

-size +10Mte da "objetos" de más de 10 megabytes

-type f solo te da archivos

-printfimprime los archivos encontrados, %pes la ruta, %ses el tamaño (en bytes) y \nes la nueva línea.

Gerd Klima
fuente
1

Acabo de encontrarme con la herramienta de línea de comandos, Disksum , que parece similar a diruse , pero ofrece dos formas de salida:

  • ordenados por recuentos de archivos por directorio (ascendente)
  • ordenado por tamaño de directorio (ascendente)
Virola Umber
fuente
1

Creo que usar esta solución es más preciso con la descripción:

Descargue el ejecutable de línea de comandos sfk.exe en http://sourceforge.net/projects/swissfileknife/files/

Úselo así

skf.exe list -big

Ejemplo de salida (abreviado):

[listing 50 of 78 files by size:]
        3951 mens\noname_30.mht
        3996 mens\noname_14.mht
        3996 mens\noname_25.mht
        4060 mens\noname_24.mht
        4263 mens\noname_31.mht
        4701 mens\noname_1.mht
       14568 Thumbnail Restore.zip
       45056 netmeter.exe
     [...]
     12337752 rktools.exe
     16826024 sp35378.exe
     16926496 jre-6u30-windows-i586.exe
     19480227 SugarCE-6.2.4.zip
     21073936 vlc-1.1.11-win32.exe
     22083184 EasyPHP-5.3.8.1-setup.exe
     25517642 MPSOFTWARE.phpDesigner.v8.0.0.145-CRD.rar
     31085033 phpdesigner8usb.zip
     48835640 netbeans 7.exe
     58900704 ZendServer-CE-php-5.2.17-5.6.0-Windows_x86.exe    
     491538432 53400105.iso

Si solo desea los 10 archivos más grandes, use:

skf.exe list -big=10

Puede personalizarlo siguiendo las instrucciones de: http://stahlworks.com/dev/index.php?tool=list

vicenteherrera
fuente
Maravillosa respuesta, la mencioné aquí; softwarerecs.stackexchange.com/questions/30824/…
DankyNanky
-2

Sé que la pregunta es sobre la línea de comandos, pero esta pregunta sigue apareciendo en Google, por lo que agrego otra forma simple: a través del Explorador.

  1. abra la ubicación (un disco o una carpeta) donde desea buscar archivos grandes en el Explorador de Windows
  2. en el cuadro de búsqueda superior derecho, escriba "tamaño: gigantesco" (el cuadro sugerirá automáticamente la sintaxis y otras opciones posibles)
jitbit
fuente
La pregunta buscaba respuestas de la línea de comandos.
juan
Esta es una respuesta buena y válida. No debería ser rechazado.
zar