Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Allgemein


Alles zum Thema Windows Clients für den Desktop: Windows 95 / 98 / NT / 2000 / XP / Vista / Win 7 — Q & A zu den Windows Client Versionen sowie Windows Media Center / Windows Home Server


Antwort
     
Themen-Optionen
Alt 30.12.2005, 10:33   #1
Gast
 
Offline
Registriert seit: 10-2004
Beiträge: 60
Abfragen von leeren Dateien in Batch-Dateien

Hi,

ich habe ein Problem mit folgendem Code:

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

Code:
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
    Mit Zitat antworten
Alt 30.12.2005, 21:05   #2
Member
 
Offline
Registriert seit: 11-2003
Beiträge: 202
Und wenn du mal

Code:
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
Code:
:error 3
gesprungen.

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

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
    Mit Zitat antworten
Alt 31.12.2005, 00:46   #3
Newbie
 
Offline
Registriert seit: 10-2004
Beiträge: 34
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
    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Batch: Auffinden von doppelten Dateien, Vergleich der gefundenen Dateien Narugami Windows Forum — Scripting 1 04.06.2008 09:25
sleep.exe in Batch Dateien wolf84 Windows Forum — Allgemein 3 06.12.2005 20:23
Batch-Dateien schreiben Ducksi Windows Forum — Allgemein 2 01.07.2004 11:52
Batch dateien vanthe_man Windows Forum — Allgemein 2 23.03.2004 13:17
Batch-Dateien (unter DOS ;-() alias Windows Forum — Allgemein 7 16.10.2003 19:56


Alle Zeitangaben in MEZ/CET. Es ist jetzt 05:53 Uhr. Seite generiert in 0,027 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang