vol ver sirve script que para pantalla mostrar mensaje comandos comando color bat archivos windows command-line

windows - ver - mostrar mensaje en pantalla cmd



Comando de Windows para el tamaƱo del archivo solamente? (12)

¿Hay un comando de Windows que muestre el tamaño en bytes de un archivo específico como este?

>filesize test.jpg 65212

Sé que el comando dir genera esta información, pero también produce otra información.

Podría escribir fácilmente un programa así, pero preferiría usar un comando nativo de Windows, si es posible, o solo lo que está disponible en una nueva instalación de Windows XP.


Como usa XP, Windows PowerShell es una opción.

(Get-Item filespec ).Length

o como una función

function Get-FileLength { (Get-Item $args).Length } Get-FileLength filespec


En Powershell puedes hacer:

$imageObj = New-Object System.IO.FileInfo("C:/test.jpg") $imageObj.Length


En un archivo por lotes, el siguiente funciona para archivos locales, pero falla para archivos en discos duros de red

for %%I in ("test.jpg") do @set filesize=%~z1

Sin embargo, es un código inferior porque no funciona para los archivos guardados en una unidad de red (por ejemplo, / Nas / test.jpg, / 192.168.2.40 / test.jpg). El código siguiente funciona para archivos en cualquier ubicación, lo escribí yo mismo. Estoy seguro de que hay formas más eficientes de hacerlo utilizando vbs, powershell o lo que sea, pero no quería hacer nada de eso, ¡buen lote para mí!

set file=C:/Users/Admin/Documents/test.jpg set /a filesize= set fileExclPath=%file:*/=% :onemoretime set fileExclPath2=%fileExclPath:*/=% set fileExclPath=%fileExclPath2:*/=% if /i "%fileExclPath%" NEQ "%fileExclPath2%" goto:onemoretime dir /s /a-d "%workingdir%">"%temp%/temp.txt" findstr /C:"%fileExclPath%" "%temp%/temp.txt" >"%temp%/temp2.txt" set /p filesize= <"%temp%/temp2.txt" echo set filesize=%%filesize: %fileExclPath%%ext%=%% >"%temp%/temp.bat" call "%temp%/temp.bat" :RemoveTrailingSpace if /i "%filesize:~-1%" EQU " " set filesize=%filesize:~0,-1% if /i "%filesize:~-1%" EQU " " goto:RemoveTrailingSpace :onemoretime2 set filesize2=%filesize:* =% set filesize=%filesize2:* =% if /i "%filesize%" NEQ "%filesize2%" goto:onemoretime2 set filesize=%filesize:,=% echo %filesize% bytes SET /a filesizeMB=%filesize%/1024/1024 echo %filesizeMB% MB SET /a filesizeGB=%filesize%/1024/1024/1024 echo %filesizeGB% GB


Esto no es exactamente lo que preguntaba y solo se puede usar desde la línea de comandos (y puede ser inútil en un archivo por lotes), pero una manera rápida de verificar el tamaño del archivo es simplemente usar dir :

> dir Microsoft.WindowsAzure.Storage.xml

Resultados en:

Directory of C:/PathToTheFile 08/10/2015 10:57 AM 2,905,897 Microsoft.WindowsAzure.Storage.xml 1 File(s) 2,905,897 bytes 0 Dir(s) 759,192,064,000 bytes free


Prueba forfiles :

forfiles /p C:/Temp /m file1.txt /c "cmd /c echo @fsize"

El comando forfiles ejecuta el comando c para cada archivo m en el directorio p .

La variable @fsize se reemplaza con el tamaño de cada archivo.

Si el archivo C:/Temp/file1.txt tiene 27 bytes, forfiles ejecuta este comando:

cmd /c echo 27

Que imprime 27 en la pantalla.

Como efecto secundario, borra tu pantalla como si hubieras ejecutado el comando cls .


Si está dentro de un script por lotes, puede usar trucos de variables de argumento para obtener el tamaño del archivo:

filesize.bat:

@echo off echo %~z1

Esto le da resultados como los que sugiere en su pregunta.

Tipo

help call

en el símbolo del sistema para todas las opciones de manipulación de variables locas. También vea este artículo para más información.

Editar: esto solo funciona en Windows 2000 y posterior


Si no desea hacer esto en una secuencia de comandos por lotes, puede hacerlo desde la línea de comandos de esta manera:

for %I in (test.jpg) do @echo %~zI

Feo, pero funciona. También puede pasar una máscara de archivo para obtener una lista de más de un archivo:

for %I in (*.doc) do @echo %~znI

Mostrará el tamaño, nombre de archivo de cada archivo .DOC.


Tomado desde aquí :

El siguiente comando busca carpetas con un tamaño superior a 100 MB en la unidad D:

diruse /s /m /q:100 /d d:

La opción / s hace que se busquen subdirectorios, la opción / m muestra el uso del disco en megabytes, la opción / q: 100 hace que las carpetas que son mayores a 100 MB se marquen, y la opción / d solo muestra las carpetas que exceden el umbral especificado por / q.

Use el comando diskuse para encontrar archivos de un cierto tamaño. El siguiente comando muestra archivos de más de 100 MB de tamaño en la unidad D:

diskuse D: /x:104857600 /v /s

La opción / x: 104857600 hace que se muestren archivos de más de 104,857,600 bytes y solo es válida si incluye la opción / v (verbosa). La opción / s significa que se buscan los subdirectorios de la ruta especificada (en este caso, el disco D: drive).

Usando VBScript

'' This code finds all files over a certain size. '' ------ SCRIPT CONFIGURATION ------ strComputer = "**<ServerName>**" intSizeBytes = 1024 * 1024 * 500 '' = 500 MB '' ------ END CONFIGURATION --------- set objWMI = GetObject("winmgmts://" & strComputer & "/root/cimv2") set colFiles = objWMI.ExecQuery _ ("Select * from CIM_DataFile where FileSize > ''" & intSizeBytes & "''") for each objFile in colFiles Wscript.Echo objFile.Name & " " & objFile.Filesize / 1024 / 1024 & "MB" next


Use una función para deshacerse de alguna limitación en el operador ~ z, especialmente útil con for loop:

@echo off set size=0 call :filesize "C:/backup/20120714-0035/error.log" echo file size is %size% goto :eof :: set filesize of 1st argument in %size% variable, and return :filesize set size=%~z1 exit /b 0


crear filesize.cmd (y ponerlo en C: / Windows / System32):

@echo %~z1


en Powershell DEBERÍAS hacer esto:

(Get-ChildItem C: / TEMP / file1.txt) .Length


C:/>FORFILES /C "cmd /c echo @fname @fsize" C:/>FORFILES /? FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {MM/dd/yyyy | dd}] Description: Selects a file (or set of files) and executes a command on that file. This is helpful for batch jobs. Parameter List: /P pathname Indicates the path to start searching. The default folder is the current working directory (.).