Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wenn Prozess läuft kann Batch den Code nicht weiterverarbeiten?

Frage Entwicklung Batch & Shell

Mitglied: spookypoof

spookypoof (Level 1) - Jetzt verbinden

06.07.2014, aktualisiert 21.07.2014, 1593 Aufrufe, 11 Kommentare

Hallo,

Ich hab ein Problem. Ich hab z.B. zwei verschiedene Menü's und im zweiten Menü starte ich eine Datei. Der Prozess muss am laufen sein. Aber wenn er am laufen ist macht die Batch im Code nicht mehr weiter.. So kann er auch nicht mehr zum "hauptmenue" jumpen. Kann man da etwas machen?

z.B.
01.
@echo off 
02.
:hauptmenue 
03.
echo Du befindest dich im Hauptmenue. 
04.
pause >nul 
05.
goto zweitesmenue 
06.
 
07.
:zweitesmenue 
08.
start beispielprog.exe 
09.
echo Diesen Text kann man nicht sehen, weil der Prozess noch läuft. 
10.
pause >nul 
11.
goto hauptmenue
Grüße
spookypoof
Mitglied: bastla
06.07.2014 um 17:56 Uhr
Hallo spookypoof!

Soferne Du "start" überhaupt benötigst, verwende "start /wait" ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
06.07.2014 um 19:47 Uhr
Hallo bastla,

wenn ich spookypoof richtig verstanden habe, wäre das /WAIT genau kontraproduktiv, weil das Programm asynchron laufen soll. Andererseits kann ich das Problem ohne /WAIT weder verstehen noch nachstellen

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
06.07.2014 um 20:01 Uhr
Hallo rubberman!
wenn ich spookypoof richtig verstanden habe, wäre das /WAIT genau kontraproduktiv
Jetzt wo Du's sagst - leider zu oberflächlich gelesen.

Unter diesem Gesichtspunkt sehe ich allerdings das Problem auch nicht ...

Grüße
bastla
Bitte warten ..
Mitglied: Snowman25
07.07.2014 um 10:41 Uhr
Hallo cyrano330,

Zitat von spookypoof:

Ich hab ein Problem. Ich hab z.B. zwei verschiedene Menü's und im zweiten Menü starte ich eine Datei. Der Prozess
muss am laufen sein. Aber wenn er am laufen ist macht die Batch im Code nicht mehr weiter.. So kann er auch nicht mehr zum
"hauptmenue" jumpen. Kann man da etwas machen?

Du könntest versuchen, den Prozess über Powershell und Start-Process zu starten. Oder, wenn das nicht funktioniert über Start-Job.
Mit Start-Job kannst du ein Programm im Hintergrund ausführen. In etwa so:
01.
start-job -scriptblock {start-process beispielprog.exe}
Gruß,
Snowman25
Bitte warten ..
Mitglied: pieh-ejdsch
LÖSUNG 08.07.2014, aktualisiert 21.07.2014
Moin,

01.
Start "" /b "beispiel.exe" 
02.
Echo hier gleich weiter
Die cmd wird erst beendet, wenn der Kindprozess beendet ist.

Gruß Phil
Bitte warten ..
Mitglied: Snowman25
08.07.2014 um 09:55 Uhr
Zitat von pieh-ejdsch:

Die cmd wird erst beendet, wenn der Kindprozess beendet ist.

Liest hier eigentlich niemand auser mir und rubberman?
spookypoof möchte, dass die Batch __unabhängig__ vom aufgerufenen Programm weiterläuft. Also das Programm startet und die Batchausführung __nicht__ pausiert wird.

Gruß,
Snowman25
Bitte warten ..
Mitglied: spookypoof
08.07.2014, aktualisiert um 11:41 Uhr
Erstmal, danke für eure Hilfe!

Also, um etwas klarheit zu bringen, erkläre ich mal was ich vor hatte.
Ich führe eine php mit dem Programm php.exe aus. Die php startet den VLC. Das Problem ist, wenn ich die VLC beende, beendet sich die php.exe nicht. Der Prozess vlc.exe gehört ja nicht zu dem Prozess-Tree der php.exe. Sondern die test.php startet den VLC.

Der Befehl sieht so aus:
01.
php.exe -f test.php
Das heißt die Batch kann den Code nicht mehr weiterführen. Sie steckt da fest. Habe schon alles versucht nach dem Befehl, dass die Batch den Prozess beenden soll, doch ohne Erfolg.

PS: Wäre es möglich einen Code in der test.php einzubauen, der die php.exe beendet?

Grüße
spookypoof
Bitte warten ..
Mitglied: Snowman25
08.07.2014 um 12:51 Uhr
Schonmal exit() oder die() am Ende des Skripts ausgeführt?
Bitte warten ..
Mitglied: spookypoof
09.07.2014 um 22:58 Uhr
@Snowman25
hat leider nicht geklappt.

Eine andere Möglichkeit wäre doch, z.B. wenn der VLC geschlossen ist, soll die test.php die php.exe beenden. Sodass der die Batch den Code weiterverarbeiten kann. Geht das?


Grüße
spookypoof
Bitte warten ..
Mitglied: Snowman25
10.07.2014 um 17:13 Uhr
Zitat von spookypoof:

Eine andere Möglichkeit wäre doch, z.B. wenn der VLC geschlossen ist, soll die test.php die php.exe beenden. Sodass der
die Batch den Code weiterverarbeiten kann. Geht das?


Das schon ausprobiert?
Bitte warten ..
Mitglied: SaschaRD
10.07.2014, aktualisiert um 17:36 Uhr
Hallo Spookypoof

Du kannst mit dem Befehl TASKLIST eine Abfrage erstellen.

01.
tasklist /fi "imagename eq vlc.exe" | find "vlc.exe"
Um das ganze dann zu schließen einfach eine IF-Bedingung hinterher jagen.
01.
IF ERRORLEVEL =1 ( 
02.
echo VLC läuft nicht 
03.
) ELSE ( 
04.
echo VLC läuft 
05.
taskkill /f /t /im vlc.exe 
06.
taskkill /f /t im php.exe 
07.
echo VLC und PHP gekillt 
08.
)
Gruß, Sascha
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Batch Skript läuft merkwürdig. (15)

Frage von pixel0815 zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (1)

Frage von Matzus87 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...