Gyal 10 Geschrieben 30. Dezember 2005 Melden Teilen Geschrieben 30. Dezember 2005 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 Zitieren Link zu diesem Kommentar
netsniffer 10 Geschrieben 30. Dezember 2005 Melden Teilen Geschrieben 30. Dezember 2005 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 Zitieren Link zu diesem Kommentar
maneich 10 Geschrieben 30. Dezember 2005 Melden Teilen Geschrieben 30. Dezember 2005 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.