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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: miniversum
miniversum 16.03.2009 um 18:38:10 Uhr
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  
....
Mitglied: bastla
bastla 16.03.2009 um 19:23:39 Uhr
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
Mitglied: CaptainCrash
CaptainCrash 17.03.2009 um 09:11:25 Uhr
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?
Mitglied: Biber
Biber 17.03.2009 um 09:31:51 Uhr
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
Mitglied: CaptainCrash
CaptainCrash 17.03.2009 um 09:56:48 Uhr
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