Tengo un archivo por lotes de Windows (Windows 7/2008 R2) que realiza una copia de seguridad diaria del archivo (archivo de exportación de volcado de Oracle, por ejemplo dump-2016-10-17.DMP)
Quiero agregar el tamaño de ARCHIVO (en una variable) que debería estar en KB / MB / GB de acuerdo con el tamaño, o al menos debería obtener el tamaño del archivo en MB. CÓDIGO:
@echo off
SET DONE=0
SET Bytes=%~z1
SET KB=%Bytes:~0,-3%
SET MB=%Bytes:~0,-6%
SET GB=%Bytes:~0,-9%
SET TB=%Bytes:~0,-12%
rem echo %~f1
IF "%KB%" EQU "" SET DONE=B
IF %DONE% EQU B echo Size is... %Bytes% Bytes
IF %DONE% EQU B GOTO END
IF "%MB%" EQU "" SET DONE=K
IF %DONE% EQU K SET /a KB=(%BYTES%/1024)+1
IF %DONE% EQU K echo Size is... %KB% KB
IF %DONE% EQU K GOTO END
IF "%GB%" EQU "" SET DONE=M
IF %DONE% EQU M SET /a MB=(%BYTES%/1048576)+1
IF %DONE% EQU M echo Size is... %MB% MB
IF %DONE% EQU M GOTO END
IF "%TB%" EQU "" SET DONE=M
IF %DONE% EQU M SET /a MB=%KB%/1049
IF %DONE% EQU M echo Size is... %MB% MB (approx)
IF %DONE% EQU M GOTO END
SET DONE=G
IF %DONE% EQU G SET /a GB=%MB%/1074
IF %DONE% EQU G echo Size is... %GB% GB (approx)
IF %DONE% EQU G GOTO END
:END
@echo off SET DONE=0 SET Bytes=%~z1 SET KB=%Bytes:~0,-3% SET MB=%Bytes:~0,-6% SET GB=%Bytes:~0,-9% SET TB=%Bytes:~0,-12% echo %~f1 IF "%GB%" EQU "" SET DONE=M IF %DONE% EQU M SET /a MB=(%BYTES%/1048576)+1 IF %DONE% EQU M echo Size is... %MB% MB IF %DONE% EQU M GOTO END :END