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-Key: 97295

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

Printed on: April 19, 2024 at 08:04 o'clock

Member: bastla
bastla Sep 18, 2008 at 16:23:12 (UTC)
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
Member: Flauschbobbel
Flauschbobbel Sep 18, 2008 at 18:28:00 (UTC)
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