[ krivatcha @ 02.10.2010. 13:07 ] @
Imam startovan proces Start.exe koji je pokrenut iz komandne linije sa nekim parametrima. Potreban mi je script koji ce proveravati u listi svih procesa da li pomenuti proces (pokrenut sa odredjenim parametrima) postoji (odnosno da li je zavrsio svoju obradu). Pronasao sam kako da dobijem listu svih procesa koji se zovu Start.exe ali ne znam kako da nadjem bas onaj startovan sa odredjenim parametrima. Sistem na kome ovo radim je XP Professional.
[ nemesis @ 02.10.2010. 19:37 ] @
da li taj .exe ima neki ``semafor`` fajl koji pokazuje da je program josh aktivan !?:)
[ krivatcha @ 02.10.2010. 21:43 ] @
Takav file ne postoji, niti imam dostupan kod tog .exe procesa. Proces se pokrece iz komandne linije sa odredjenim parametrima, radi obradu velike kolicine podataka (minimum 4-5GB file-ovi) i gasi se slanjem IPC poruke. A meni je potrebno da kad ja njemu posaljem IPC poruku za gasenje, da mogu iz batch scripta da odredim trenutak kada se on stvarno ugasi i tada prekopiram obradjene podatke. Gasenje ovakvog procesa traje i do 20 min (dok sve podatke flush-uje na harddisk).
[ daigu @ 03.10.2010. 18:31 ] @
Ovo možeš provjeriti putem wmi-a, točnije win32_process klase i pripadajućeg mu svojstva "CommandLine". Možeš to putem Wscript-a ili Powershella. Npr, ako je proces pokrenut na slijedeći način:

Code:
Start.exe /p /q /x


Onda recimo kod za provjeru u Powershellu ide ovako:

Code:


$proces = get-wmiobject win32_process -filter "CommandLine = 'Start.exe /p /q /x'"

if ($proces) {
        #Kod ako proces postoji
}
else {
        #Kod ako ne postoji
}
[ daigu @ 03.10.2010. 18:35 ] @
VBScript verzija bi išla ovako:

Code:
' Provjeri postojanje procesa


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where CommandLine = 'Start.exe /p /q /x'")

If colProcesses.Count = 0 Then
    Wscript.Echo "Proces ne postoji."
Else
    Wscript.Echo "Proces postoji."
End If
[ nemesis @ 03.10.2010. 20:26 ] @
mislim da je kljuchna rech XP ...
powershell na xp ?:)
znachi osim ako ga posebno ne skine i instalira ( mora bidne XP SP2 ako se dobro secam )
netje da moze da mu radi powershell :)
[ daigu @ 04.10.2010. 13:44 ] @
OK. Powershell ili VBScript. Dao primjer i za jedno i za drugo. I što i da mora skinuti i instalirati Powershell? U čemu je problem?