marvinpl
Goto Top

Größe einer Datei per BATCH in eine TXT schreiben

Hallo erstmal und danke, dass du meine Frage geöffnet hast.

Ich möchte auf Servern von uns und unseren Kunden die Dateigrößen von manchen Dateien überwachen.
Dafür möchte ich die Dateigröße automatisiert (Aufgabenplanung) mit einer BATCH in eine Textdatei schreiben.

Leider bin ich nicht so versiert in Kommandozeilenbefehlen, daher frage ich nun hier, wie man so etwas bewerkstelligt.

Ich bin über jede Hilfe dankbar, vielleicht lerne ich hier noch ein wenig dazu.
Vielen Dank im Voraus face-smile

Content-ID: 334038

Url: https://administrator.de/forum/groesse-einer-datei-per-batch-in-eine-txt-schreiben-334038.html

Ausgedruckt am: 12.04.2025 um 06:04 Uhr

em-pie
Lösung em-pie 04.04.2017 um 15:17:51 Uhr
Goto Top
Moin,

bin vermutlich mit googlen schneller gewesen, als du mit deinem Post schreiben face-wink

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal
set file="test.cmd"  
set maxbytesize=1000

FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA  

if %size% LSS %maxbytesize% (
    echo.File is ^< %maxbytesize% bytes
) ELSE (
    echo.File is ^>= %maxbytesize% bytes
)
Quelle: http://stackoverflow.com/questions/1199645/how-can-i-check-the-size-of- ...

anstelle von Zeile 08ff könntest du dann einfach ein
1
 echo %size%>c:\tofile.txt
schreiben

Die Ausgabe wäre dann in Byte, du müsstest dann lediglich durch 1024^x teilen, wenn du KiByte(x=1), MiByte (x=2) oder GiByte(x=3) haben möchtest...

Gruß
em-pie
marvinpl
marvinpl 04.04.2017 um 15:30:20 Uhr
Goto Top
Dann bedienst du Google besser als ich :P
Hab leider nichts passendes gefunden.

Vielen Dank!
Funktioniert face-smile
em-pie
em-pie 04.04.2017 um 16:23:11 Uhr
Goto Top
Tipp:
Häufig kommt man mit den englischen Begriffen schneller zu Ziel.
In diesem konkreten Fall ist es batch filesize gewesen...

Ansonsten: viel Erfolg beim Beobachten face-smile
clubmaster
clubmaster 05.04.2017 um 09:50:53 Uhr
Goto Top
Geht auch mit forfiles:

https://www.windowspro.de/wolfgang-sommergut/forfiles-befehle-auf-gruppe ...

z.B: forfiles /S /M *.txt /C "cmd /c if @fsize LSS 100 echo @fname > E:\dateigroesse.txt
colinardo
colinardo 05.04.2017 aktualisiert um 10:28:23 Uhr
Goto Top
Nur zur Information, bei 2GB 2^31 Bytes ist Schluss mit dem "direkten" Vergleichen in Batch (Integer Overflow), dann sollte man bspw. auf Powershell/VBS/... ausweichen.
http://stackoverflow.com/questions/11546020/can-batch-files-not-process ...

Grüße Uwe