flauschbobbel
Goto Top

Überprüfen, ob eine Datei leer ist

Hallo Zusammen,

ich habe ein sehr grosses Problem und ich hoffe ihr könnt mir weiterhelfen.
ich versuche per Batch zu überprüfen, ob eine Date leer ist. Dabei handelt es sich um eine csv-Datei, die maximal eine Zeile, den Header enthält. Wenn sonst ausser dem Header nichts drin steht, soll sie für das Skript "leer" sein.
Meine Datei mit Header ist also wenn sie leer ist maximal 290 Byte groß.

Ich habe nun ein Skript gebaut, hier der Ausschnitt:
 
..
	set InputListe="%scriptdir%rt.csv"  
	set InputListeLocal="%scriptdir%rt_local.csv"  
...

::	Wenn leere neue rt.csv vom FTP (<=291 bytes), dann benutze lokale
	for %%R in ("%InputListe%") do if %%~zR leq 291 (  
		call :WRITELOG "FTP-Datei leer! Benutze lokale rt.csv"  
			if exist %InputListeLocal% (
	  	 		del /F %InputListe% >NUL
				copy /Y %InputListeLocal% %InputListe% >NUL
				del /F %InputListeLocal% >NUL
			)
	)
...

Aber es funktioniert nicht . Ich hole mir eine "gefüllte Datei (viel größer als 291 byte) vom Server, trotzdem behauptet das Script die Datei wäre leer.
Was mache ich falsch, ich sehe meinen Fehler nicht.
Bitte helft mir! Ich brauche dieses Skript für unsere SW-Verteilung bis morgen und bin im Moment ziemlich ratlos...

Danke Flauschbobbel

Content-ID: 97295

Url: https://administrator.de/contentid/97295

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

bastla
bastla 18.09.2008 um 18:23:12 Uhr
Goto Top
Hallo Flauschbobbel!

Wenn Du schon beim "set" den Pfad mit Anführungszeichen angibst, brauchst Du die nicht auch noch in der "for"-Zeile - daher:
for %%R in (%InputListe%) do if %%~zR leq 291 (
BTW: In einem Batch ist der "copy"-Schalter "/Y" entbehrlich ...

Grüße
bastla
Flauschbobbel
Flauschbobbel 18.09.2008 um 20:28:00 Uhr
Goto Top
Hallo bastla,

vielen herzlichen Dank!!!
Yep, das war das Problem. Es funktioniert! Manchmal ist man wirklich blind.

Nochmals vielen Dank und viele Grüße,
Flauschbobbel