WinXP Batch: Test auf Filegröße 0

- programmiertechnik
0 Ashura0 Vinzenz Mai0 MudGuard
Hi,
gibt es einen einfachen Weg (sprich: ohne zusätzliche Programme), in einem Batchfile (im cmd.exe) eine Verzweigung zu machen, wenn eine Datei die Größe 0 hat?
Die Abfrage auf Existenz ist nicht genug, da wget -O bla http://example.org das File bla auch dann anlegt, wenn die Seite nicht erreichbar ist,
if exist bla
hilft mir also nicht weiter ...
Ich bräuchte also das, was in der bash unter Linux mit
if [-s bla]
machbar wäre, für die cmd.exe von Windows XP.
TIA
cu,
Andreas
Hallo MudGuard.
gibt es einen einfachen Weg (sprich: ohne zusätzliche Programme), in einem Batchfile (im cmd.exe) eine Verzweigung zu machen, wenn eine Datei die Größe 0 hat?
Wie sieht es mit „ChkSize.bat“ auf dieser Seite aus?
:: Check specified file's actual size
FOR /F "tokens=3* delims= " %%A IN ('DIR %1 /-C /N ^| FIND /I "%~nx1"') DO SET ACTSIZE=%%A
Alternativ bin ich noch auf diesen Thread gestoßen; die dortigen Vorschläge sehen vielversprechend aus.
(Meine Suche: „windows batch filesize“.)
Einen schönen Montag noch.
Gruß, Ashura
Hallo Ashura,
:: Check specified file's actual size
FOR /F "tokens=3* delims= " %%A IN ('DIR %1 /-C /N ^| FIND /I "%~nx1"') DO SET ACTSIZE=%%A
sieht nicht so gut aus, da
> Alternativ bin ich noch auf [diesen Thread](http://www.computing.net/windows95/wwwboard/forum/167338.html) gestoßen; die dortigen Vorschläge sehen vielversprechend aus.
die dort vorgestellte Lösung
%~zI - Erweitert %I zur Größe der Datei.
verwendet, was mir wesentlich eleganter vorkommt. Benötigt Windows 2000 oder neuer. Mehr dazu in der häufig unterschätzten Windows-Hilfe unter "Verwenden von Batchparametern".
Freundliche Grüße
Vinzenz
Hi,
gibt es einen einfachen Weg (sprich: ohne zusätzliche Programme), in einem Batchfile (im cmd.exe) eine Verzweigung zu machen, wenn eine Datei die Größe 0 hat?
Wie sieht es mit „ChkSize.bat“ auf dieser Seite aus?
:: Check specified file's actual size
FOR /F "tokens=3* delims= " %%A IN ('DIR %1 /-C /N ^| FIND /I "%~nx1"') DO SET ACTSIZE=%%A
Naja, das ist so mit der Hau-Ruck-Methode - aus der Ausgabe des Verzeichnislistings irgendwie die Größe rauszulesen versuchen ...
> Alternativ bin ich noch auf [diesen Thread](http://www.computing.net/windows95/wwwboard/forum/167338.html) gestoßen; die dortigen Vorschläge sehen vielversprechend aus.
Am ehesten brauchbar ist
for %%R in (bla) do if %%~zR equ 0
obwohl das auch irgendwie Hau-Ruck-mäßig ist - extra eine Schleife erzeugen, die genau einmal durchlaufen wird ...
> (Meine Suche: „[windows batch filesize](http://www.google.de/search?q=windows+batch+filesize&hl=de&lr=&start=10&sa=N)“.)
Mit diesen Stichworten hab ich auch zu suchen versucht, aber derzeit krieg ich bei allen google-Servern (google.de, google.com, google.at, google.ch, ...) timeouts statt Ergebnissen.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Hallo MudGuard.
(Meine Suche: „windows batch filesize“.)
Mit diesen Stichworten hab ich auch zu suchen versucht, aber derzeit krieg ich bei allen google-Servern (google.de, google.com, google.at, google.ch, ...) timeouts statt Ergebnissen.
Sehr merkwürdig. Was sagen tracert und ping dazu? Vielleicht liegt es an dem Nameserver, den du verwendest. Geht es so?
On–Topic: Ich schätze, Vinzenz’ Vorschlag ist optimal.
Einen schönen Montag noch.
Gruß, Ashura
Hi,
(Meine Suche: „windows batch filesize“.)
Mit diesen Stichworten hab ich auch zu suchen versucht, aber derzeit krieg ich bei allen google-Servern (google.de, google.com, google.at, google.ch, ...) timeouts statt Ergebnissen.Sehr merkwürdig. Was sagen tracert und ping dazu?
Jetzt? Daß die Rechner wieder erreichbar sind ...
On–Topic: Ich schätze, Vinzenz’ Vorschlag ist optimal.
Ohne die for-Konstruktion liefert mir das nichts brauchbares, da
set %f=bla
echo %~zf
die Ausgabe
%~zf
liefert, wohingegen
for %f in (bla) do echo %~zf
die Dateigröße ausgibt.
cu,
Andreas