Jump to content

Abfragen von leeren Dateien in Batch-Dateien


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

 

ich habe ein Problem mit folgendem Code:

 

@echo off

if not exist c:\pcname.txt goto error2

for /f usebackq %%i in (`type c:\pcname.txt`) do @set pcname=%%i

if %pcname==" " goto error3

echo. %pcname%
goto end

:error2
echo Fehler!!!
goto end

:error3
echo Kein Inhalt!!!

:end
pause

 

und zwar funktioniert die Zeile

 

if %pcname==" " goto error3

 

wo ich abfrage ob die Datei leer ist nicht. Er liest sie zwar aber er geht nicht nach error3 wenn die Datei leer ist.

 

Gruss,

Markus

Link zu diesem Kommentar

Und wenn du mal

 

if %pcname=="" goto error3

 

versuchst?

Wenn die Datei wirklich leer ist, hat die Datei den Inhalt NULL (= ASCII Zeichen 0).

Du prüfst aber ab ob die Datei den Inhalt " " (Space = ASCI Zeichen 32) hat.

Natürlich ist ASCI(0) != ASCI(32) und damit ist der Ausdruck false und es wird nicht nach

:error 3

gesprungen.

 

Hab zwar schon lange nichts mehr mit Batch-Dateien gemacht aber so würd ichs jetzt aus .NET Sicht sehen :p

 

Außerdem irritiert mich irgendwie das @ vor dem set befehl.. ich denke das gehört da nicht hin....

 

Hab leider im Moment keine Zeit das auszuprobieren....

 

Grüße

Link zu diesem Kommentar

Hallo,

 

%pcname

 

kann nicht gefunden werden, muß heißen

 

%pcname%

 

der Inhalt einer Variablen kann vom System nur gelesen werden wenn auf beiden Seiten das Prozentzeichen steht.

 

Außerdem, wenn Du die Abfrage stellst ob eine Variable ohne Inhalt ist, muß das/die Zeichen nach == auch davor stehen, also

 

if "%pcname%"=="" goto error3

 

oder

 

if %pcname%'==' goto error3

 

oder

 

if [%pcname%]==[] goto error3

 

usw.

 

Deine Definition " " ist falsch, da wenn "%pcname%" keine Inhalt hat dies dann höchstenfalls "" ergibt, also bei 2 Zeichen immer ohne Leerstelle setzen.

 

MfG maneich

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...