captaincrash
Goto Top

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

Content-Key: 111564

Url: https://administrator.de/contentid/111564

Printed on: April 19, 2024 at 06:04 o'clock

Member: miniversum
miniversum Mar 16, 2009 at 17:38:10 (UTC)
Goto Top
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
....
@echo off
find "%COMPUTERNAME%" \\111.111.111.111\Unames.txt || goto:eof  
....
Member: bastla
bastla Mar 16, 2009 at 18:23:39 (UTC)
Goto Top
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


Grüße
bastla
Member: CaptainCrash
CaptainCrash Mar 17, 2009 at 08:11:25 (UTC)
Goto Top
Danke danke, schön bei euch zu sein ;o)

Hat ja wunderbar geklappt, vielen dank.

habs übrigens so gemacht:

@echo off



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?
Member: Biber
Biber Mar 17, 2009 at 08:31:51 (UTC)
Goto Top
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
Member: CaptainCrash
CaptainCrash Mar 17, 2009 at 08:56:48 (UTC)
Goto Top
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