Thursday, August 6, 2015

HOW TO – Exportar en txt ficheros superiores a 20MB

Muchas veces nos quedamos sin espacio en los servidores de ficheros y con el comando FORFILES podemos realizar búsquedas como por ejemplo: listar ficheros superiores a 20 MB (el ejemplo está al final).
FORFILES [/P nombre de ruta] [/M máscara de búsqueda] [/S]
         [/C comando] [/D [+ | -] {dd/MM/yyyy | dd}]

Descripción:
    Selecciona un archivo (o conjunto de archivos) y ejecuta un comando en ese archivo. Esto es útil para trabajos por lotes.

Lista de parámetros:
    /P    nombre de ruta: Indica la ruta de acceso para iniciar la
                        búsqueda. La carpeta predeterminada es el
                        directorio de trabajo actual (.).

    /M    máscara de búsqueda  Busca archivos de acuerdo con una máscara de
                       búsqueda. La máscara de búsqueda predeterminada es '*'.

    /S                  Indica a forfiles que realice recursividad en
                        subdirectorios. Como "DIR /S".

    /C    comando       Indica el comando que se va a ejecutar para
                        cada archivo. Las cadenas de comandos deben
                        estar entre comillas dobles.

                        El comando predeterminado es "cmd /c eco

                        @file". Se pueden usar las siguientes
                        variables en la cadena de comandos:
                        @file    - devuelve el nombre del archivo.
                        @fname   - devuelve el nombre de archivo sin
                                   extensión.
                        @ext     - devuelve sólo la extensión del
                                   archivo.
                        @path    - devuelve la ruta de acceso completa
                                   del archivo.
                        @relpath - devuelve la ruta de acceso relativa
                                   del archivo.
                        @isdir   - devuelve "TRUE" si un tipo de
                                   archivo es un directorio y "FALSE"
                                   para archivos.
                        @fsize   - devuelve el tamaño del archivo en
                                   bytes.
                        @fdate   - devuelve la última fecha de
                                   modificación del archivo.
                        @ftime   - devuelve la última hora de
                                   modificación del archivo.

                        Para incluir caracteres especiales en la línea
                        de comandos, use el código hexadecimal del
                        carácter en formato 0xHH (ejemplo, 0x09 para
                        tabulador). Interno comandos CMD.exe deben
                        estar precedidos por "cmd /c".

    /D    fecha          Selecciona archivos con última fecha de
                        modificación posterior o igual a (+), o
                        anterior o igual a (-), la fecha especificada
                        usando el formato "dd/MM/yyyy"; o selecciona
                        archivos con última fecha de modificación
                        posterior o igual a (+) la fecha actual más
                        "dd" días, o anterior o igual a (-) la fecha
                        actual menos "dd" días. Un número de días "dd"
                        puede ser cualquier número del intervalo
                        0-32768. "+" se toma como signo predeterminado
                        si no se especifica.

    /?                  Muestra este mensaje de ayuda.

Ejemplos:
    FORFILES /?
    FORFILES
    FORFILES /P C:\WINDOWS /S /M DNS*.*
    FORFILES /S /M *.txt /C "cmd /c type @file | more"
    FORFILES /P C:\ /S /M *.bat
    FORFILES /D -30 /M *.exe
             /C "cmd /c echo @path 0x09 se cambió hace 30 días"
    FORFILES /D 01/01/2001
             /C "cmd /c echo @fname es nuevo desde el 1 de enero de 2001"
    FORFILES /D +6/8/2015 /C "cmd /c echo @fname es nuevo hoy"
    FORFILES /M *.exe /D +1
    FORFILES /S /M *.doc /C "cmd /c echo @fsize"
    FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"


Para nuestro caso, hemos utilizado los siguientes parámetros:

SET HOST=%COMPUTERNAME%
FORFILES /P E: /S /M *.* /C "cmd /c if @fsize gtr 20971520 echo @fsize @path" >>C:\list\%HOST%.txt


Espero os ayude.

No comments:

Post a Comment