hufihaus
Goto Top

Batch Datei Problem

Tach,

ich möchte in einer Batch Datei zwei Programme starten. Das zweite soll aber erst starten, wenn das erste geschloßen wird!

Vorab: Ich nutze Vista, die User XP Pro.

Ich nutze folgenden Code in der Batch Datei:

start /WAIT C:\Pfad\Datei.lnk <-- (.lnk weil die .exe noch einige Paramater besitzt)
start /WAIT \\Hh-2k3-ts1\freigegebener ordner\Datenbank.mde

Der Sinn der Sache ist, ich muss einen Datenbankabgleich nach Programmschluß tätigen. Also nachdem Programm 1 geschloßen wird, öffnet sich die .mde auf unserem Terminalserver und eine Datenbanksynchronisation findet statt. Dies sollte nach Möglichkeit auch automatisch geschehen, sprich nach Beendigung des Programms.

Es wäre natürlich möglich eine bat Datei zu schreiben, bei der der User den Abgleich manuell startet aber dies kommt für mich bei den Usern nicht in Frage.

Bei mir funktioniert der oben aufgeführte Code ohne Probleme. Bei den XP Usern allerdings werden beide Befehle (Programme) nacheinander gestartet und nicht wie gewollt, das 2. nach dem 1.

Woran kann das liegen bzw. wie kann ich dieses Problem umgehen? Evtl. mit einer Schleife? Und wenn ja, wie muss sie aussehen?

Bin für jeden Rat dankbar!

Gruß,
hufi

Content-ID: 61130

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

pfaffe
pfaffe 12.06.2007 um 11:27:39 Uhr
Goto Top
Hallo,

versuche es mal mit CALL anstatt Start.
Das könnte helfen!

Gruß,
Ingo
Hufihaus
Hufihaus 12.06.2007 um 11:34:42 Uhr
Goto Top
Hi,

habe ich auch schon probiert. Leider ohne Erfolg. Es starten immernoch beide Programme nacheinander.
tbw-01
tbw-01 12.06.2007 um 12:02:06 Uhr
Goto Top
Vieleicht stimmen die Zugriffs-Rechte auf dem Server nicht (Freigabe und NTFS)
um diese Programme auszuführen, bzw. auf sie zuzugreifen.

CU,
TBW
pfaffe
pfaffe 12.06.2007 um 12:22:02 Uhr
Goto Top
Hallo,
eventuell liegt es auch daran, dass du eine Verknüpfung aufrufst.
Kannst du die .exe nicht auch direkt aufrufen?
Hufihaus
Hufihaus 12.06.2007 um 12:22:07 Uhr
Goto Top
Das ist aber garnicht das Problem meines Erachtens. Es geht doch nur darum, und dann ist es egal ob als Admin oder User angemeldet (bereits getestet), das zweite Programm mehr oder weniger zeitgleich mit dem ersten startet, was jedoch durch den Befehl "/wait" nicht passieren dürfte.

Ich will einfach nur bewerkstelligen, dass beide Dateien starten wie sie es sollen.
Hufihaus
Hufihaus 12.06.2007 um 12:27:10 Uhr
Goto Top
Super! Genau das war es. Gott da wäre ich nie drauf gekommen weil wie oben bereits gesagt, es bei mir ja ebenfalls mit der Verknüpfung funktioniert.

Nun stellt sich für mich die zweite Frage: Wie gebe ich dir Parameter korrekt ein?

Die Verknüpfung der Exe sieht wie folgt aus:

C:\HEIMPROG\MSARN200.EXE C:\HeimProg\CSG_PROG.MDB /ini C:\WINDOWS\csg_prog.ini

Wie müsste das nun in der Batch Datei aussehen?
pfaffe
pfaffe 12.06.2007 um 12:28:43 Uhr
Goto Top
Doch, das wird das Problem sein!
in dem Moment in dem die .ink Datei aufgerufen wird hat sie sich für die Batch Datei schon wieder erledigt, da sie ja auch nur eine weitere Datei aufruft und dann beendet wird.

Ich hoffe du verstehst was ich damit meine, ist schwer zu erklären.
36831
36831 12.06.2007 um 12:31:43 Uhr
Goto Top
Moin,

eventuell liegt es auch daran, dass du eine Verknüpfung aufrufst.

Das wird es höchstwahrscheinlich sein.
Die Verknüpfung ist kein eigenes Programm bzw. beendet sich mit dem Moment, in dem die exe des Programms aufgerufen wird. Damit ist die aufgerufene .lnk nicht mehr aktiv und somit merkt auch start /WAIT, dass die .lnk nicht mehr ausgeführt wird und führt den nächsten Befehl aus.

Wenn du die exe des ersten Programms direkt, mit den Parametern direkt dahinter, in der bat aufrufst, sollte es eigentlich funktionieren, sofern die exe nicht auch wiederum nur eine ander bzw. sich selbst mit anderen / weiteren Parametern aufruft (habe ich schon öfters in Setups erlebt, dass z.B. die exe nur die msi mit Parametern aufgerufen hat)

Versuche also einfach mal den direkten Aufruf aus der bat. Es sollte funktionieren.

MfG,
VW

[edit]
mal wieder nur 2. Post. Ich bin immernoch zu langsam bzw. schreib zu viel. face-smile
[/edit]
Hufihaus
Hufihaus 12.06.2007 um 12:39:16 Uhr
Goto Top
Siehe oben:

Zitat:

"Super! Genau das war es. Gott da wäre ich nie drauf gekommen weil wie oben bereits gesagt, es bei mir ja ebenfalls mit der Verknüpfung funktioniert.

Nun stellt sich für mich die zweite Frage: Wie gebe ich dir Parameter korrekt ein?

Die Verknüpfung der Exe sieht wie folgt aus:

C:\HEIMPROG\MSARN200.EXE C:\HeimProg\CSG_PROG.MDB /ini C:\WINDOWS\csg_prog.ini

Wie müsste das nun in der Batch Datei aussehen?"


Danke schonmal bisher! Hat mich um einiges weiter gebracht! face-smile
pfaffe
pfaffe 12.06.2007 um 13:15:49 Uhr
Goto Top
Eventuell so:
Start /WAIT "C:\HEIMPROG\MSARN200.EXE C:\HeimProg\CSG_PROG.MDB /ini C:\WINDOWS\csg_prog.ini"
Hufihaus
Hufihaus 12.06.2007 um 13:25:00 Uhr
Goto Top
Leider nicht. Evtl mit "&" oder ähnlichem?!
pfaffe
pfaffe 12.06.2007 um 14:12:39 Uhr
Goto Top
Vielleicht auch ohne "" ?
Hufihaus
Hufihaus 12.06.2007 um 14:22:59 Uhr
Goto Top
Nein face-smile

Der 2. Parameter muss definitiv "C:\HeimProg\CSG_PROG.MDB /ini" lauten. Der "/ini" Parameter bezieht sich auf die MDB.
pfaffe
pfaffe 12.06.2007 um 14:29:39 Uhr
Goto Top
Ruf doch mal in einer DOS Box folgendes auf:
C:\HEIMPROG\MSARN200.EXE /?

Vielleicht gibt es dann noch eine Übersicht der Optionen!
Hufihaus
Hufihaus 12.06.2007 um 14:33:07 Uhr
Goto Top
Passiert nichts.

Aber anscheinend läuft es grade. Ich meld mich wenn ich es soweit habe! Danke!
pfaffe
pfaffe 12.06.2007 um 14:41:56 Uhr
Goto Top
Habe noch folgendes gefunden:
  • * * *

Selbst die INI-Dateien können einen zum Narren halten.
Z.B. werden im Falle Strobel Aufrufe einer Access-Runtime-Anwendung sowohl vom Windows-Programm-Manager wie auch vom DOS-Shell-Menü ausgeführt. Die Anweisung der auszuführenden Befehleszeile

c:\strobel\msarn200.exe e:\bestatt\bestatt.mdb /ini e:\bestatt\bestatt.ini

sowie das entsprechende Arbeitsverzeichnis 'e:\bestatt' sind in beiden Fällen identisch hinterlegt. Trotzdem gelingt der Aufruf aus dem DOS-Shell-Menü heraus nicht so richtig, da in der ini-Datei hinterlegte Bezüge auf z.B. Icons, Bibliotheksdatenbanken und SplashUp-Logos nicht gefunden werden, während das vom Programm-Manager aus gelingt. Auf Jangos Netzmaschine kam es sogar zu so richtig schönen Netz-###fehlern. Erst das explizite Hinterlegen der entsprechenden Pfadangaben für diese Dateien in dieser ini-Datei beendete diesen Spuk.

  • * * *

Den ganzen Artikel findest du hier:
http://www.breitenbuecher.de/info/infobase/daten/S018.HTM

Viel Glück!
Hufihaus
Hufihaus 12.06.2007 um 15:55:48 Uhr
Goto Top
Sodele,

erstmal vielen Dank für die Hilfe!

Die Bat funktioniert soweit einwandfrei. Es war letztlich alles ohne ". Hatte irgendwie ein / zuviel drin gehabt, warum auch immer.
Zwar läuft es bei einem User mit dem Abgleich noch nicht so recht weil er keine Verbindung zum TS aufbauen kann (und das als Dom-Admin, bei mir gehts) aber bei den Usern läufts soweit.
Hoffe das mit dem einen Problem löst sich auch bald..

Gruß
hufi