Hallo,
ich bin neu hier und hoffe, dass mir bei einem Programmierungsproblem geholfen werden kann.
Ich habe mehrere Dateien, die immer wieder mit neuem Inhalt gefüllt werden. Dabei kann es passieren, dass einige Dateien die Dateilänge 0 haben. Diesen Fall muss ich in einer Batch abfangen, um dann entsprechend zu verweigen.
Als Beispiel habe ich drei Dateien verwendet:
datei1.txt mit 1 Byte Groesse datei2.txt mit 2 Byte Groesse datei3.txt mit 3 Byte Groesse
Hier nun mein Versuch:
====================
@echo off dir *.txt /B >dateiliste for /F %%i in (dateiliste) do (
rem Groesse ermitteln set g1=%%~zi
echo %%i Groesse %g1% Byte
rem weiterer Code zum Verzweigen, wenn Dateigroesse 0 ist ) ===================
Ausgabe:
datei1.txt Groesse 3 Byte datei2.txt Groesse 3 Byte datei3.txt Groesse 3 Byte
Es wird also immer die Größe der letzten Datei ausgegeben.
Hat jemand eine Idee, wie man das lösen könnte?
Viele Grüße
Uwe
Lösung inzwischen gefunden.
if %%~zi == 0 (
Befehl wenn Datei = 0 byte hat
) ELSE (
Befehl wenn Datei mehr als 0 Byte hat
)
Setzen als Variable mit "set g1=%%~zi" funktioniert nicht - scheint ein Bug zu sein!?
Uwe