captaincrash

Inhalt einer Datei mit Batch abgleichen

Mit Batch Inhalt einer TXT vergleichen

Hallo zusammen,

da sich hier anscheinend die hellsten Köpf der Batch erstellung aus dem Netz treffen könnt ihr mir bestimmt weiterhelfen.
Ich hab noch nicht wirklich viel erfahrung mit Batchdatein das gleich mal vorweg.

Also ich habe eine Datei xyz.txt in der bestimmte Rechnernamen enthalten sind.
Jetzt möchte ich eine Batchdatei erzeugen die Prüft ob mein aktueller Rechnername auch in besagter Datei drin steht, falls ja soll der BAtch weiter Dinge tun, falls nein einfach zum ende springen.

Versucht habe ich es so:


@echo off
find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt
if %errorlevel% == 0 goto 1
if %errorlevel% == 1 goto END

1:

: END


leider ohne erfolg :o( sollte ich das am betsne mit find machen oder lieber ganz anders angehen?
Ich hoffe ihr könnt weiterhelfen
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 111564

Url: https://administrator.de/forum/inhalt-einer-datei-mit-batch-abgleichen-111564.html

Ausgedruckt am: 18.07.2025 um 03:07 Uhr

miniversum
miniversum 16.03.2009 um 18:38:10 Uhr
So oltle es gehen:
@echo off
find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt   
if %errorlevel% gtr 0 goto END

....

:END
Das END kannst du aber auch weglassen und gleich ans ende der Datei springen wenn sonst ncihts mehr kommen soll. Dan must du als "Sprungmarke" eof angeben. Das ist quasi eine eingebaute sprungmarke am ende der Datei:
@echo off
find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt   
if %errorlevel% gtr 0 goto:eof
....
Es geht auch noch kürzer. Die überprüfung auf Errorlevel 0 oder eben ungleich 0 kannst du auch durch ein && bzw || nach dem Befehl ersetzen. Das sieht dan so aus:
@echo off
find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt || goto:eof  
....
bastla
bastla 16.03.2009 um 19:23:39 Uhr
Hallo CaptainCrash und willkommen im Forum, hallo miniversum!

Vielleicht solltet Ihr dem "find" noch ein "/i" spendieren ...

BTW: Der Klassiker
if errorlevel 1 goto :eof
fehlt noch in der Sammlung. face-wink

Ich bevorzuge allerdings auch die Schreibweise mit "||".

Grüße
bastla
CaptainCrash
CaptainCrash 17.03.2009 um 09:11:25 Uhr
Danke danke, schön bei euch zu sein ;o)

Hat ja wunderbar geklappt, vielen dank.

habs übrigens so gemacht:

@echo off

find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt || goto:eof


allerdings bekomme ich jetzt in der DosBox noch die Ausgabe:


\\111.111.111.111\UNAMES.TXT
xxxxxxxxxx ( Computername )


gibt es noch einen Befehl den ich setzen kann damit er mir nichts sagt sondern einfach weitermacht?
Biber
Biber 17.03.2009 um 09:31:51 Uhr
Moin CaptianCrash,

gibt es noch einen Befehl den ich setzen kann damit er mir nichts sagt sondern einfach weitermacht?
Da gibt es mehrere Möglichkeiten.
Die aufwändigere ist, diesen Ausgabetext in ein Textdatei umzuleiten und diese dann mit bmail an eine öffentlich zugängliche Mailadresse zu senden (dsds-voting@pro-sieben.de).

Aber auf die schnelle ginge es auch so:
 @echo off 
find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt >nul || goto:eof   

Falls evtl Fehlermeldungen ("Datei \\111.111.111.111\Unames.txt nicht gefunden") auch unterdrückt werden sollen, dann noch "2>nul" ergänzen.

Grüße
Biber
CaptainCrash
CaptainCrash 17.03.2009 um 09:56:48 Uhr
Wunderbar, vielen Dank an alle beteiligten, hat alles einwandfrei geklappt.
Hmm wobei die "sende eine Mail mit den ergebnissen an dsds-voting@pro-sieben.de" Variante würde mich dann doch sehr intressieren ;o)


Grüße und viel Spass
CC