WinFuture-Forum.de: [gelöst!]doppelter Programm Aufruf - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

[gelöst!]doppelter Programm Aufruf


#1 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

  geschrieben 27. August 2010 - 10:57

Hej Jungs.
Also folgendes. Hab eine .bat
Diese führt ein Programm aus, dass wenn es abgelaufen ist, eine Datei speichert.
Eine .txt
Ich will aber auch das es in xml gespeichert wird.
ergo was mache ich, kopier die Zeile und füg sich nochmals ein. nur mit der option der xml datei.
Allerdings wird der erste Aufruf des Progs erst dann gestartet, wenn beide Zeilen durchgelaufen sind.
Also ist meine frage, ist es möglich ein und das selbe Programm nacheinander aufzurufen in einer bat aber erst nachdem der erste aufruf abgearbeitet wurde.
bei dem programm aufruf handelt es sich um aida32

Dieser Beitrag wurde von sermon bearbeitet: 02. September 2010 - 06:25

Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 29. August 2010 - 13:46

Anscheinend kann mir keiner helfen. Es geht mir darum. Ich hab jetzt eine batch Datei die 2 weitere aufruft. Jetzt ist es so, dass jede dieser batch Datei das Programm Aida32 aufruft. Einmal erstellt das Programm dann einen XML Report und einmal einen TXT Report. Wenn eine bathdatei fertig ist, ergo das Prog aufgerufen wurde, weiß die bat ok. Nun mache ich die 2 bat auf. Diese ruft wiederum aida32 auf. Allerdings läuft aida ja noch. Die Abarbeitung dauert etwas. Ergo wird das zweite anstoßen übersprungen. Jetzt wollte ich wissen ob man der bat sagen kann: Pass auf, du führst erst die zweite bat aus wenn die erste erfolgreich war UND das angestoßene Prog durchgelaufen ist. Was noch möglich wäre, wäre eine Art wait befehl. Allerdings ist es ja immer von Rechner zu Rechner unterschiedlich wie lange einer braucht um einen Report ab zu arbeiten. Deswegen wäre dies nur die notfalllösung.
Ich hoffe aber, dass ihr mich jetzt besser versteht und nachvollziehen könnt was ich vorhabe.

Dieser Beitrag wurde von sermon bearbeitet: 29. August 2010 - 13:48

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 29. August 2010 - 14:51

start/wait batch_1.bat
start/wait batch_2.bat
echo feddisch


das hauptbatch wird erst fortgeführt wenn das sich öffnende neue Fenster abgearbeitet/geschlossen wurde.

Gruß,

Stefan
0

#4 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 29. August 2010 - 15:20

besten Dank!
Werde es aber erst morgen auf Arbeit testen können.
Ich werde berichten.
Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 29. August 2010 - 15:37

Wichtig ist natürlich, dass keinerlei Fehler abgefangen werden.

Sollten dir die einzelnen Errorlevel bekannt sein kannst du das natürlich auch abfangen

es war mal

:abfrage
IF ERRORLEVEL == 0 GOTO AllesOK
IF ERRORLEVEL == 1 GOTO UPPS
Goto abfrage
:Upps
:AllesOK


das ich mit Errorleveln gearbeitet habe stammt aber noch aus MS-DOS-Zeiten... daher weiß ich nicht verbindlich ob dies auch seinen Dienst unter NT-Systemen erweist.
0

#6 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 30. August 2010 - 06:17

echo Haben Sie ein wenig Geduld. Dies dauert nicht lange :)

start/wait aida32_xml.bat
start/wait aida32_txt.bat

echo Alles fertig!


So habe ich es derzeit bei mir stehen.
Allerdings verlangt das Prinzip eine Eingabe vom Benutzer.
Wenn die erste Datei durchgelaufen ist, muss man das Fenster schließen. Daraufhin wird im nächsten Fenster gefragt, ob man den Vorgang abbrechen will. Man tippt logischerweise "N" ein und drückt Enter. Die nächste .bat wird ausgeführt.
Danach muss man das Fenster wieder manuell schließen und erneut die Frage verneinen.
Wobei dies nur eine Auswirkung auf das automatisierte schließen hat.

Ich würde das alles gerne automatisieren. Da nicht jeder wirklich damit vertraut ist. Vor allem Anwender die "nur" Office Anwendungen machen.

Ok hab's jetzt so gelöst:

echo Haben Sie ein wenig Geduld. Dies dauert nicht lange :)

start/wait/B aida32_xml.bat
start/wait/B aida32_txt.bat

Jetzt ist es so, dass wenn das Programm abgearbeitet wurde, Das cmd Fenster noch offen bleibt. kann man das nicht auch iwie schließen?
Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   DON666 

  • Gruppe: aktive Mitglieder
  • Beiträge: 4.196
  • Beigetreten: 30. Oktober 03
  • Reputation: 500
  • Geschlecht:Männlich
  • Wohnort:Verden (Niedersachsen)
  • Interessen:PC, Xbox Series X

geschrieben 30. August 2010 - 07:34

 Zitat (sermon: 30.08.2010, 07:17)

[...]
Jetzt ist es so, dass wenn das Programm abgearbeitet wurde, Das cmd Fenster noch offen bleibt. kann man das nicht auch iwie schließen?

Dafür sollte doch ein "exit"-Befehl in der letzten Zeile reichen, oder?
Motörhead
Queens Of The Stone Age
Fu Manchu
Napalm Death
Liar
Grim Tales... ^^
SysProfile
"Is my cock big enough,
is my brain small enough
for you to make me a star?"
(Jello Biafra "Pull My Strings")
0

#8 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 30. August 2010 - 07:56

nein. leider nicht. exit bewirkt nur, dass das programm beendet wird. allerdings nicht das fenster geschlossen wird.
hab es jetzt mit pskill gelöst.
am ende pskill cmd.exe

Allerdings stellt sich mir ein anderes Prob. Unter Win200 führt er die bat nicht richtig aus.
Sprich er führt den ersten Befehl aus. Allerdings nicht mehr denn zweiten. Unter Xp kein prob.
hatte das aufrufen vorher mit call geregelt. lief einwandfrei. auch das fenster hat sich danach geschlossen. will das alles aber automatisiert und so einfach wie möglich für den user machen
Eingefügtes Bild
Eingefügtes Bild
0

#9 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 30. August 2010 - 09:03

 Zitat (sermon: 30.08.2010, 07:17)

So habe ich es derzeit bei mir stehen.
Allerdings verlangt das Prinzip eine Eingabe vom Benutzer.


Du kannst doch bestimmt bei AIDA (habs leider nicht selbst sonst würd ich schauen) die Parameter mitgeben die die Fragen "beantworten" bzw gänzlich unterdrücken.

Alternativ wäre (auch wegen deinem W2000 Problem) der Code des Aida-.Scripts sinnvoll zu erlesen.

Gruß,

Stefan

EDIT:

Ein "PAUSE" als zwischenbefehl hat mir im übrigen bei Batches schon oft geholfen Fehler auszumerzen.

Ebenso solltest du in der Entwicklung nicht

@echo off

am Anfang des Codes setzen da so eventuelle Fehlermeldungen ebenso nicht angezeigt werden.

Dieser Beitrag wurde von Stefan_der_held bearbeitet: 30. August 2010 - 09:05

0

#10 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 30. August 2010 - 09:11

Hab mir AIDA schon angeguckt. Allerdings kann ich dem Erstellungsscript nur einen Parameter mitgeben. Entweder eine Textdatei oder eine XML. Leider nicht beides. Sonst wäre das prob ja einfacher gelöst worden :ph34r:
Hier mal ein paar befehle zu AIDA:
Eingefügtes Bild

jau das mit @echo off kommt erst in die fertige batch. sehe also die befehle ;D

Kann man der Pause auch eine bestimmte Zeit mitgeben? so sagen wir 1 Minute oder 30 sec. irgendwas in die Richtung?

Dieser Beitrag wurde von sermon bearbeitet: 30. August 2010 - 09:14

Eingefügtes Bild
Eingefügtes Bild
0

#11 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 30. August 2010 - 09:27

 Zitat (sermon: 30.08.2010, 10:11)

jau das mit @echo off kommt erst in die fertige batch. sehe also die befehle ;D


denkt leider nicht jeder drann :ph34r:

Zitat

Kann man der Pause auch eine bestimmte Zeit mitgeben? so sagen wir 1 Minute oder 30 sec. irgendwas in die Richtung?


sinn/unsinn?

was willst du damit bezwecken?

Es gab zu MS-DOS Zeiten ein Befehl der das verstand eine gewisse Zeit lang zu "parken"´.... unter NT musst du glaube mit

ping 127.0.0.1 > null


frickeln (enspricht 4Pings a ca. 1sec)

bzw

ping 127.0.0.1 /n 30 127.0.0.1 > null


für entsprechend 30Pings

Dieser Beitrag wurde von Stefan_der_held bearbeitet: 30. August 2010 - 09:32

0

#12 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 30. August 2010 - 09:35

ok. vergessen wir das mit pause. kann es sein, dass win2000 eventuell probs hat mit syntax?
ich hab ja sowas hier:

Zitat

start/wait/B aida32_xml.bat
start/wait/B aida32_txt.bat
pskill cmd.exe


muss es vielleicht sowas sein:

Zitat

start /WAIT /B aida32_xml.bat
start /WAIT /B aida32_txt.bat
pskill cmd.exe

Eingefügtes Bild
Eingefügtes Bild
0

#13 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 30. August 2010 - 09:56

 Zitat (sermon: 30.08.2010, 10:35)

ok. vergessen wir das mit pause. kann es sein, dass win2000 eventuell probs hat mit syntax?


öhm.... Empfehlung ist hier "Try&Error" :ph34r:

das hier kann zumindest START unter NT 6.x

Angehängte Datei  start.txt (4,04K)
Anzahl der Downloads: 154

Da Start ein - meines Wissens nach - in die CMD inplentierter Befel like "dir" ist kann es schon zu Differenzen zwischen den Editionen kommen
0

#14 Mitglied ist offline   sermon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.181
  • Beigetreten: 12. März 08
  • Reputation: 162
  • Geschlecht:Männlich
  • Wohnort:Bielefeld

geschrieben 30. August 2010 - 10:05

Die HIlfe habe ich mir auch mal angeguckt so ist net ;D
Ich werde mir mal nen virtuelles Vista, 7 und win2000 installen um zu sehen wie sich die bat datei da verhält.
Ich melde mich dann wieder, wenn ich durch bin ;)
Schließlich haben wir, leider Gottes alle Versionen im Umlauf :ph34r:
Und ich will ja, dass es auf allen System gleich läuft. abgesehen von der Dauer :P

OK. Weiß jetzt soviel, dass start völlig ausreicht. es werden dann zwar 2 fesnter geöffnet. aber das ist mir wayne.
es wäre nur gut, dass ich es hinbekomme diese beiden fenster auch automatisiert schließen kann.
zum haare raufen. was unter win200 klappt, klappt net unter xp und andersrum -.-

Dieser Beitrag wurde von sermon bearbeitet: 30. August 2010 - 11:20

Eingefügtes Bild
Eingefügtes Bild
0

#15 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 30. August 2010 - 11:29

och dann würde ich folgendes machen:

setze auf den Systemen (falls von der Menge her realisierbar) auf jedem System eine Variabel die du bsp.

WINVERSION=W2k


setzt.

dieses in deinem Script abfragen und das entsprechende ausführen (geht ja mit "GOTO" relativ problemlos).

Einfacher w#re es natürlich wenn du den genauen OS-Wert aus der Registry auslesen kannst... aber da habe ich persönlich nicht eine solche Erfahrung um dir da weiter helfen zu können.

MFG

Stefan

EDIT:

http://www.administr...hp?content=9957

hilft da evtl. weiter

bzw die Suchergebnisse
http://www.google.de/#hl=de&q=windows+...bcf147a2f0fa7fc

Dieser Beitrag wurde von Stefan_der_held bearbeitet: 30. August 2010 - 11:31

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0