lemonjuice
Goto Top

Inhalt einer Datei mit Text vergleichen (Batchfile)

ich bin informatikerlehrling und versuche ein batch zu schreiben

Also ich habe folgendes problem:

Ich muss ein Batch schreiben der 1. in der Registry nach einer Software sucht die Installiert ist oder nicht.

Wenn es nicht installiert ist dann schreibt es auf unserem Fileserver an einem bestimmten ort damit wir wissen das dieser Computer diese Software nicht besitzt.

Wenn es die Software installiert hat soll er ein Update durchführen und diese Installieren.

"Bis hier hin habe ich es geschafft aber der rest weiss ich nicht wie weiter machen....."

Im letzten Schritt muss es Überprüfen und vergleichen ob die Version 2.5.6 in dem ReleaseNote( ist ein HTML file) auch 2.5.6 steht, wenn dies erfüllt ist

schreibt er ein textfile mit dem hostnamen und den user.

Ich weiss nicht wie ich das im batch schreiben soll, damit er "2.5.6" mit dem Inhalt des ReleaseNote vom Programm vergleicht und sucht ob in diesem file irgendwo 2.5.6 steht

Könnt Ihr mir helfen?


Das habe ich bis jetzt schon gemacht:

@echo on


reg query HKEY_LOCAL_MACHINE\SOFTWARE\Baan\ERPLN\ProcessAffinity|find /I "BW">nul   

if not errorlevel 0 (

set %hostname% >\\zhersrvfis02\cherdata$\Alle\ufer\kein_worktop\%computername%.txt

rem " Sie haben kein Worktop"  

)

pause


if errorlevel 0 ("\\zhersrvfis02\cherdata$\Info\LN\Infor_Worktop\Infor Worktop.msi"  

set %hostname% >\\zhersrvfis02\cherdata$\Alle\ufer\update_worktop\%computername%.txt 


)
pause


[Edit Biber] Codeformatierung nachgetragen. [/Edit]

Content-ID: 130666

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

Ausgedruckt am: 26.11.2024 um 16:11 Uhr

60730
60730 01.12.2009 um 13:43:00 Uhr
Goto Top
Auch dir eine nette Begrüßung....

Les dir mal die Hilfe zu Reg query durch.

btw.
Errorlevel kann man nur einmal abfragen.
Eine Errorlevelabfrage nach einer Errorlevel Abfrage bringt den Errorlevel der vorherigen Abfrage und nicht das, was man denkt abgefragt zu haben.
Lemonjuice
Lemonjuice 01.12.2009 um 13:48:07 Uhr
Goto Top
hmm.. also was wäre dafür eine alternative? ich bin ziemlich am anfang was den batch angeht...

timobeil kannst du mir vieleicht sagen wie ich nach einem wort oder zahl in einem file suchen kann?
Tommy70
Tommy70 01.12.2009 um 13:54:57 Uhr
Goto Top
Hallo

Oder du verwendest findstr zum Prüfen ob 2.5.6 im File steht.
Lemonjuice
Lemonjuice 01.12.2009 um 13:56:38 Uhr
Goto Top
wie würden den der code heissen?

findstr "2.5.6" releanotes.htm oder wie genau?
60730
60730 01.12.2009 um 13:57:15 Uhr
Goto Top
Zitat von @Lemonjuice:
hmm.. also was wäre dafür eine alternative?
Moin, Mittach oder auch kurz Hallo?
ich bin ziemlich am anfang was den batch angeht...

timobeil kannst du mir vieleicht sagen wie ich nach einem wort oder zahl in einem file suchen kann?
Ja kann ich face-wink

@ Tommy - da unser Herr Lehrling mal so und mal so schreibt und die Registry keine Datei ist, die man mit findstr durchsuchen kann...
Bzw: wenn ich meinen Azubi dabei erwischen würde - wenn er eine simple Lernaufgabe - die ich Ihm zum lernen gegeben habe - grußlos in einem Forum postet, damit er nichts selber denken braucht...
Lemonjuice
Lemonjuice 01.12.2009 um 14:04:13 Uhr
Goto Top
Hallo, Mahlzeit, Mittag o.ä.

Es ist meine Arbeit so ein Batch zu schreiben weil ich Lehrling bin (Azubi) lernender Informatiker....


Timobeil wie kann ich das im code so schreiben das nach "2.5.6" im Releasenotes.html danach gesucht wird?
Falls er "2.5.6" im file gefunden hat dann soll er diesen Befehl ausführen. Aber bei der Umsetzung happert es ein bisschen, kannst du mir zeigen oder ein mustercode schreiben?

set %hostname% >\\zhersrvfis02\cherdata$\Alle\ufer\update_worktop\%computername%.txt

ich muss eben überprüfen ob das update sauber installiert worden ist oder nicht. In der Registry habe ich schon nachgeschaut und dort hat sich eigentlich nichts grosses geändert das ich nach dem überprüfen könnte.

Ich danke im Voraus
Tommy70
Tommy70 01.12.2009 um 14:17:34 Uhr
Goto Top
@ Tommy - da unser Herr Lehrling mal so und mal so schreibt und die
Registry keine Datei ist, die man mit findstr durchsuchen kann...
Bzw: wenn ich meinen Azubi dabei erwischen würde - wenn er eine
simple Lernaufgabe - die ich Ihm zum lernen gegeben habe -
grußlos in einem Forum postet, damit er nichts selber denken
braucht...

@Timo

Da er oben ja schreibt, dass er in der ReleaseNote( ist ein HTML file) danach suchen will kann er schon mit findstr arbeiten.
Was den Rest angeht gebe ich dir Recht ;)
Tommy70
Tommy70 01.12.2009 um 14:20:14 Uhr
Goto Top
@Lemonjuice

Versuchs mal mit findstr /C:"2.5.6" PFAD\Releasenotes.html
Lemonjuice
Lemonjuice 01.12.2009 um 14:25:38 Uhr
Goto Top
Zitat von @Tommy70:
> @ Tommy - da unser Herr Lehrling mal so und mal so schreibt und
die
> Registry keine Datei ist, die man mit findstr durchsuchen
kann...
> Bzw: wenn ich meinen Azubi dabei erwischen würde - wenn er
eine
> simple Lernaufgabe - die ich Ihm zum lernen gegeben habe -
> grußlos in einem Forum postet, damit er nichts selber
denken
> braucht...

@Timo

Da er oben ja schreibt, dass er in der ReleaseNote( ist ein HTML
file) danach suchen will kann er schon mit findstr arbeiten.
Was den Rest angeht gebe ich dir Recht ;)

Klar jetzt kommt wieder die Typische Mobbing tour für Lernende... Ich habe hier nur um ein paar Tipps gefragt...
Es ist nicht so das ich zu faul wäre ein code zu schreiben jedoch wenn ich erst gerade angefangen habe kann ich ja auch nicht alles wissen oder?
Lemonjuice
Lemonjuice 01.12.2009 um 14:30:49 Uhr
Goto Top
also ich habe jetzt den code angepasst jedoch sagt er mir das er das nicht öffnen kann.

mein code :

@echo on


findstr/C:"2.5.6" C:\Program_Files\Infor\Worktop\releaseNotes.htm

pause

habe ich was falsch gemacht?
Tommy70
Tommy70 01.12.2009 um 14:34:44 Uhr
Goto Top
Schau dir nochmal genau an was ich und was du geschrieben hast.
Eventuell das Leerzeichen nach findstr.
fritzo
fritzo 01.12.2009 um 14:41:52 Uhr
Goto Top
Lemonjuice, versuch es so:

findstr "2.5.6" C:\Program_Files\Infor\Worktop\releaseNotes.htm && (
@echo %COMPUTERNAME% > \\zhersrvfis02\cherdata$\Alle\ufer\update_worktop\%computername%.txt
@echo %USERNAME% > \\zhersrvfis02\cherdata$\Alle\ufer\update_worktop\%computername%.txt

@Timo
Trink Kaffee.

Grüße,
fritzo
Lemonjuice
Lemonjuice 01.12.2009 um 14:43:55 Uhr
Goto Top
hmm.. also auf den abstand habe ich geschaut.. kann es evtl. sein wegem dem abstand zwischen program und files?
kann es sein das er die abstände nicht erkennt?


findstr /C:"2.5.6" c:\Program Files\Infor\Worktop\releaseNotes.htm
Tommy70
Tommy70 01.12.2009 um 14:46:48 Uhr
Goto Top
Ja, setz den Pfad in Anführungszeichen.
Lemonjuice
Lemonjuice 01.12.2009 um 14:50:02 Uhr
Goto Top
also es hat jetzt funktioniert.

Mein code sieht jetzt so aus.

@echo on

findstr "2.5.6" "C:\Program Files\Infor\Worktop\releaseNotes.htm" && (
@echo %COMPUTERNAME% > \\zhersrvfis02\cherdata$\Alle\ufer\update_worktop\%computername%.txt
@echo %USERNAME% > \\zhersrvfis02\cherdata$\Alle\ufer\update_worktop\%computername%.txt

pause
Lemonjuice
Lemonjuice 01.12.2009 um 15:04:15 Uhr
Goto Top
danke tommy 70 face-smile jetzt funktioniert es... bis jetzt...
fritzo
fritzo 01.12.2009 um 15:13:47 Uhr
Goto Top
@Lemonjuice
Fein. Dann schreib doch bitte noch ein kurzes "Danke an alle" und setz den Thread hier auf "Gelöst". Ansonsten muß ich nämlich Timo recht geben face-wink
Lemonjuice
Lemonjuice 01.12.2009 um 15:24:22 Uhr
Goto Top
Klar.

Danke an Alle für eure rasche hilfe und die Zeit die Ihr geopfert hat.
fritzo
fritzo 01.12.2009 um 15:39:01 Uhr
Goto Top
Oki. Wenn Du nicht weiterkommst, einfach posten. *winke*
Lemonjuice
Lemonjuice 01.12.2009 um 15:40:38 Uhr
Goto Top
ok vielen dank fritzo.

ich habe jetzt mein batch noch weiter "modifiziert" und jetzt klappt alles so wie ich es brauche.. nochmals danke