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

Programm starten und von genau diesem die PID auslesen?

Frage Entwicklung Batch & Shell

Mitglied: Mauser

Mauser (Level 1) - Jetzt verbinden

06.05.2011 um 00:19 Uhr, 7251 Aufrufe, 3 Kommentare

Hallo an alle.

Ich hab das Forum durchforstet, aber irgendwie find ich nicht die Lösung, die ich suche oder ich schnall die einfach nicht.
01.
@echo off 
02.
 
03.
:1 
04.
 
05.
 C:\PFAD_ZU_PHP/php -f daemon.php -- -configdir "config" -logdir "log" 
06.
 
07.
 goto 1
Das Programm was hier gestartet wird lautet als Prozess: "php.exe"
Das ist bei mir aber mehrfach gestartet. Deshalb benötige ich die PID von der besagten php.exe.

Frage:

Kann ich irgendwie den oberen Batch-Quellcode so umbauen, dass mir die Batchdatei bei Start die PID in eine Datei reinschreibt?

Ich dachte mir das so:
01.
@echo off 
02.
 
03.
:1 
04.
set file=C:\Program\file.txt 
05.
if exists %file% del %file% 
06.
if not exists %file% makefile %file% 
07.
 
08.
 C:\PFAD_ZU_PHP/php -f daemon.php -- -configdir "config" -logdir "log" >> PID %file% 
09.
 
10.
 
11.
 goto 1
Kann das funktionieren?
Mitglied: 60730
06.05.2011 um 00:38 Uhr
moin,

irgendwo solltest du einen Beitrag finden, der sich fast genau darum dreht.

Im Prinzip..

  • Nimm das gatesverdammte

@echo off

raus..

Start "fenstertitel" php parameter usw.
  • und mit
Tasklist /FI ....
findest du die PID raus.

such mal - ich bin zu müde dafür.

Gruß
Bitte warten ..
Mitglied: Mauser
06.05.2011 um 02:39 Uhr
soweit bin ich ja schon. mit Tasklist PID´s rauszufinden ist ja kein Problem.
Doch dieses Fenster/Programm gibt es mehrfach. Alle mit gleichem Titel und der gleichen .EXE, Das einzige, worin sich diese unterscheiden,
ist die PID.

Also macht Tasklist doch nicht wirklich Sinn, oder doch?
Ich hab ja deshalb in meiner Frage geschrieben, dass ich genau diese PID von diesem gestarteten Fenster brauch.
Bitte warten ..
Mitglied: Friemler
06.05.2011 um 03:34 Uhr
Hallo Mauser,

hier mal ein Vorschlag von mir:

01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
set "ProgPath=abc" 
06.
set "Prog=xyz.exe" 
07.
 
08.
for /f "delims=" %%l in ('for /f "skip=3 tokens=2" %%p in ^('tasklist /fi "imagename eq %Prog%"'^) do @^<NUL set /p "=%%p "') do ( 
09.
  set "PIDs=%%l" 
10.
11.
 
12.
start "%Prog%" "%ProgPath%\%Prog%" 
13.
 
14.
for /f "skip=3 tokens=2" %%p in ('tasklist /fi "imagename eq %Prog%"') do ( 
15.
  echo %PIDs% | find "%%p" > NUL || if not defined NewPID set "NewPID=%%p" 
16.
17.
 
18.
if defined NewPID echo Neue Instanz: %NewPID%
Die erste FOR-Schleife erstellt eine Liste der PIDs aller z.Z. laufenden Instanzen des Programms. Dann wird in Zeile 12 das Programm gestartet. Die zweite FOR-Schleife ermittelt wieder die PIDs aller laufenden Instanzen des Programms und sucht jede von ihnen in der Liste, die die erste Schleife erstellt hat. Wenn die aktuell betrachtete PID darin nicht gefunden wird und die Variable NewPID noch keinen Wert hat, wird NewPID auf diesen Wert gesetzt. Wenn diese Variable zum Schluss einen Wert hat, wird er in Zeile 18 ausgegeben.

Das Programm muss in Zeile 12 mit dem Befehl START gestartet werden, da CMD sonst auf die Beendigung des Programms wartet.

Die erste FOR-Schleife besteht aus zwei geschachtelten Schleifen um ENABLEDELAYEDEXPANSION zu vermeiden.

Gruß
Friemler


[EDIT]
Code geändert:
  • Bugfix: In Zeile 8 @ vor ^<NUL ergänzt, sonst enthält die Liste nur ein Element
  • In Zeile 15 if not defined NewPID ergänzt, damit das Script auch funktioniert, wenn das zu startende Programm CMD.exe ist.
[/EDIT]
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows 10
Durch einschalten des xbox one controller ein programm starten (3)

Frage von xsoerenx zum Thema Windows 10 ...

Sicherheitsgrundlagen
Programm ohne UAC und Administratorrechte starten (3)

Anleitung von agowa338 zum Thema Sicherheitsgrundlagen ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...