Ho un file batch di Windows (Windows 7/2008 R2) che richiede un backup giornaliero del file. (Oracle dump export file e.g dump-2016-10-17.DMP)
Voglio aggiungere la dimensione FILE (in una variabile) che dovrebbe essere in KB / MB / GB in base alla dimensione, o almeno dovrebbe ottenere la dimensione del file in MB. CODICE:
@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