simsa84
Goto Top

If befehle in einer Batch die andere Batch Dateien kontrollieren soll!

Brauch mal wieder Hilfe

Hallo,

Ich habe drei Batch Dateien. 2 werden in der ersten mit aufgerufen. Es geht um installation von Programmen und Drucker wechsel zweier Server.

Also die Batch Dateien funktionieren soweit und Logs werden im jeweiligen Ordner auch erstellt.
Jetzt möchte ich aber nicht das jedesmal wenn der User sich anmeldet das er diese installationen vornimmt. Ausser die Netzlaufwerke.

Das erreiche ich ja wenn ich mit einem If Satz abfrage ob jeweilige Logs vorhanden sind. Und wenn Logs vorhanden sind wird er die Installationen und Druckserver wechsel nicht durchführen außer die Logs sind weg dann Installiert und verschiiebt er wieder!

Habe hier schon etwas geschrieben und möchte das Ihr mir sagen könnt ob es soweit gut aussieht oder was man anders machen kann. Bin noch ein neuling auf dem Gebiet Scripting und Ich finde nichts wirklich helfendes im Netz.

Habe es an einem Testsystem probiert klappt aber noch nicht ganz. Freue mich wenn jemand was darüber weiß!

Also die eigentliche Bat sieht dann bei mir so aus:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@Echo on
Cls

REM *****Echo.
REM *****Echo Guten Tag %Username%
REM *****Echo Ihr Computer heisst %Computername%
REM *****Echo Sie melden sich am %Logonserver% an
REM *****Echo Ihre Domäne heisst %UserDomain%

REM *****Echo Einen Moment bitte, Ihre Netzlaufwerke werden jetzt verbunden

pushd \\Server\Ordner

logonSkript.vbs

If exist \\Server\Ordner\Printserver.log
 goto Vorhanden

:Vorhanden
@echo off ist Vorhanden
goto end

If not exist \\Server\Ordner\Printserver.log
  goto Error

:Error
@echo off Error
  goto \\Bat1

If exist \\Server\Ordner\Apfel.log
  goto Vorhanden

:Vorhanden
@echo off ist Vorhanden
  goto end

If not exist \\Server\Ordner\Apfel.log
  goto Error

:Error
@echo off Error
  goto \\Bat2

pushd \\Server\Printserver

call Printserver.bat

pushd \\Server\Apfel

call Apfel.bat



popd

End
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bedanke mich im voraus schon mal für eure Antworten!!!!!!!!! ^^

Euer Simsa
Kommentar vom Moderator Biber am Nov 02, 2011 um 17:57:32 Uhr
Verschoben von "ööhmmm ...Windows??" nach "Batch & Shell"

Content-Key: 175645

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

Printed on: April 16, 2024 at 18:04 o'clock

Member: Skyemugen
Skyemugen Nov 02, 2011 at 12:35:45 (UTC)
Goto Top
Aloha,

bevor wir hier die Augenkrise bekommen, möchte ich dich doch bitten, unsere ##blue|##-Formatierung einzusetzen (geht auch nachträglich beim Bearbeiten) ...

Ebenso möchte ich dich darauf hinweisen, dass solche Anordnungen wie

If exist \\Server\Ordner\Printserver.loggoto Vorhanden

a) fehlerhaft sind und
b) if not exist erst gar nicht greifen würde, da ohne sinnvolles if exist ... (tu dies tu das) else (tu das oder dies) dann :Vorhanden direkt danach angesprochen wird ...

Mehr ins Detail gehe ich jetzt nicht (und schau' ich mir auch nicht an), solange alles im Plaintext vorhanden ist.

greetz André
P.S.: In deinem Satz
Bedanke mich im voraus schonmal für eure Beiträge!!!!!!!!!
stecken zwei Fehler ... (nein, ich spreche nicht von Rechtschreibung und/oder Grammatik)
Mitglied: 60730
60730 Nov 02, 2011 at 12:43:40 (UTC)
Goto Top
moinsen,

@echo off ist Vorhanden

ist ja mal ein ganz neuer Ansatz...
André meinte wirklich code tags - nicht code plain...

Und wenn du dann bei edit ieren bist - wo ist nochmal das Problem versteckt?

Ich habe drei Batch Dateien. 2 davon laufen in einer.

Bevor ich ganz weglaufe o der mein feuchtes Brötchen zwischen den Ohren ausläuft...
Wo du wolle?

Gruß
Member: Simsa84
Simsa84 Nov 02, 2011 at 12:44:18 (UTC)
Goto Top
So hoffe es ist jetzt genehm der Herr xD
Member: Simsa84
Simsa84 Nov 02, 2011 at 12:50:17 (UTC)
Goto Top
Das sind halt Dinge die ich gefunden habe wie gesagt kenne mich noch nicht so gut aus aber Ich merke schon das ihr sehr Hilfsbereit seid.

Ich werde versuchen mich zu bessern!!!
Member: Skyemugen
Skyemugen Nov 02, 2011 at 13:18:40 (UTC)
Goto Top
Zitat von @Simsa84:
Das sind halt Dinge die ich gefunden habe wie gesagt kenne mich noch nicht so gut aus aber Ich merke schon das ihr sehr Hilfsbereit seid.
Brauchst du nix Internet, guckst du Hilfe von CMD face-wink

if /? sollte dir schon einmal Hinweise darauf geben, warum deine goto-Anordnungen fehlerhaft sind und auch teilweise eingekürzt werden können (z.B. if exist ... (echo Existiert bereits. && pause && goto :eof) else (call ...) ... Sprungmarken sollten, nebenbei bemerkt, eindeutig und daher nicht mehrfach vorhanden sein.
Ich werde versuchen mich zu bessern!!!
Mir genügt es schon, wenn du die CMD-Hilfe bemühst, learning-by-doing (gerne auch mit konkreten Nachfrage, wenn es hakt) ausübst und deine Ausrufezeichen sparsam verwendest.

Was genau soll goto \\Bat1 eigentlich bewirken? Du versuchst hier per Sprungmarkensprung ein Verzeichnis aufzurufen (?)

greetz André
Member: Simsa84
Simsa84 Nov 03, 2011 at 05:54:13 (UTC)
Goto Top
Habe es gemacht und denke das mir diese Zeilen Helfen werden....

If not exist %Temp%\Printserver.log goto Call
  goto End

:Call
call Print.bat
goto End

:End
echo So könnts klappen ^^

Habe es getestet und es hat funktioniert und wenn ich es so Handhabe kann Ich mir den Else Befehl sparen.
Member: Skyemugen
Skyemugen Nov 03, 2011 at 07:33:02 (UTC)
Goto Top
Aloha ...

hm ...

Wozu denn für einmal call eine Sprungmarke aufrufen und dazu noch eine (überflüssige) Sprungmarke für's Ende, lässt sich doch alles viel schöner handhaben face-wink

greetz André
Member: Simsa84
Simsa84 Nov 03, 2011 at 09:37:43 (UTC)
Goto Top
Ja wie gesagt bin da auf dem gebiet noch neu aber es geht und Ich bin Happy.

Der call ist halt dafür das wenn die Log nich da is, das er die Batch ausführt und wenn das Log da ist, er einfach gar nichts macht und direkt beendet.
Will ja nicht jedesmal beim User Login das Fenster aufhaben auch wenn der User davon nichts mitbekommt.

Falls dies auch kürzer geht und hübscher Ok aber so gehts auch!! ^^ Trotzdem Danke
Member: Skyemugen
Skyemugen Nov 03, 2011 at 10:29:50 (UTC)
Goto Top
... so kann man das nicht stehen lassen ^__^
@If not exist %Temp%\Printserver.log @call Print.bat
fertig aus, mehr muss da doch gar nicht ... if exist dann macht er eben nichts und die batch macht Feierabend, if not exist dann führt er es eben aus und macht auch automatisch Feierabend ...

und beim Testen haut man meist sowieso ein goto :eof als letzte Zeile, was bei Doppelklick oder Taskplanerausführung natürlich hier überflüssig wird

greetz André