Dateigröße von Wert X bis Wert Y ermitteln. ( iF Datei größer x aber kleiner y )
Hallo Leute, seid gegrüßt
Ich habe einen Ordner mit verschiedenen Dateien. Die Dateien die ich suche sind zw. 800 und 1500MB groß. trifft diese Größe zu, will ich eine Ausgabe bzw. einen .log Eintrag generieren.
Ich hab folgendes versucht, stehe aber aktuell auf dem Schlauch. Bisher läuft alles ohne das Zweite if einwandfrei.
Welchen Operator, wenn überhaupt möglich, sollte ich zwischen den if nutzen?
Muss ich eine weitere Schleife nutzen?
Ist die Lösung generell schlecht?
Ich habs bisher nur mit gemacht und lief einwandfrei. Nun hat sich aber rausgestellt, dass es größere Dateien gibt, die ich nicht erfassen will/darf.
Über jede Hilfe bin ich dankbar. Auch über bessere Suchparameter, denn bisher hab ich nichts Brauchbares gefunden.
Euer Nollosch
Ich habe einen Ordner mit verschiedenen Dateien. Die Dateien die ich suche sind zw. 800 und 1500MB groß. trifft diese Größe zu, will ich eine Ausgabe bzw. einen .log Eintrag generieren.
Ich hab folgendes versucht, stehe aber aktuell auf dem Schlauch. Bisher läuft alles ohne das Zweite if einwandfrei.
@echo off & setlocal
Setlocal EnableDelayedExpansion
set "LOG=C:\check.log"
set "Pfad=C:\Test"
set groesse=799000000
set groesse2=1499000000
for /r %Pfad% %%s in (*.exe) do (
if %%~zs GTR %groesse% && if %%~zs LSS %groesse2% (
echo Folgende Datei ist zu groß: %%~nxs - Groesse: %%~zs - >>%LOG%
)
)
Welchen Operator, wenn überhaupt möglich, sollte ich zwischen den if nutzen?
Muss ich eine weitere Schleife nutzen?
Ist die Lösung generell schlecht?
Ich habs bisher nur mit
if %%~zs GTR %groesse%
Über jede Hilfe bin ich dankbar. Auch über bessere Suchparameter, denn bisher hab ich nichts Brauchbares gefunden.
Euer Nollosch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189270
Url: https://administrator.de/contentid/189270
Ausgedruckt am: 07.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
Hm...
(Ungetestet)
So hat man die Datein ausgabe die zwischen 800MB und 1500MB liegen.
Ich bin jezt aber nicht sicher, ob du die ausgabe so woltest oder obs die ausgeben soll,
die nicht im bereich sind. >>Folgende Datei ist zu groß:<<
Grüße
Darkprodukt
(Ungetestet)
@echo off & setlocal
Setlocal EnableDelayedExpansion
set "LOG=C:\check.log"
set "Pfad=C:\Test"
set groesse=799000000
set groesse2=1499000000
for /f %%i in ('dir /a-s-h-d /b /s "%Pfad%\*.exe"') do (
if %%~zs GEQ %groesse% (
if %%~zs LEQ %groesse2% echo Folgende Datei ist zu groß: %%~nxs - Groesse: %%~zs - >>%LOG%
)
)
So hat man die Datein ausgabe die zwischen 800MB und 1500MB liegen.
Ich bin jezt aber nicht sicher, ob du die ausgabe so woltest oder obs die ausgeben soll,
die nicht im bereich sind. >>Folgende Datei ist zu groß:<<
Grüße
Darkprodukt
Moin,
Ot
Was macht ein echo off und was hat das in einem ungetesteten batch verloren?
Fuer was braucht man das setlocal doppelt?
Gruss
Ot
Was macht ein echo off und was hat das in einem ungetesteten batch verloren?
Fuer was braucht man das setlocal doppelt?
@echo off & setlocal
Setlocal EnableDelayedExpansion
Wenn man in einer schleife keinen token benutzt, wie kommt man dann von i nach s?Setlocal EnableDelayedExpansion
for /f %%i in ('dir /a-s-h-d /b /s "%Pfad%\*.exe"') do (
if %%~zs GEQ %groesse% (
if %%~zs LEQ %groesse2% echo diese meldung wird niemals gemeldet.
if %%~zs GEQ %groesse% (
if %%~zs LEQ %groesse2% echo diese meldung wird niemals gemeldet.
Gruss