peter <ToJestTo@nic.nie.wiem> napisał(a):
To niestety niczego nie zmienia. Dalej nie ma poza pętlą w k liczby
aplikacji.
Jeszcze raz. Zostały uruchomione 4 równolegle identyczne aplikacje z
obliczeniami przez zlecenia start. Kończą swoje działanie w różnym
czasie. Bat ma sprawdzać co minutę ile jest aktywnych aplikacji. Jeżeli
nie będzie aktywnych aplikacji program ma zakończyć działanie.
projekt batu wygląda tak
Set k=15
:p1
if k GTR 0 (
set k=tasklist | find /c "svchost" rem ta linia nie działa, czyli nie
wpisuje rem do k liczby aplikacji
rem zamiast svchost będzie nazwa
mojej aplikacji echo %k%
timeout /T 60
goto p1
)
Ten program nie działa z powodu 4-tej linii. W k jest ciągle 15. W
twojej pętli też nie wpisuje do k liczby aplikacji.
Może teraz coś wykombinujesz!
Włącz sobie opóźnione rozwiązywanie zmiennych:
SetLocal EnableDelayedExpansion
set m=0
:start
for /f "delims=" %%k in ('tasklist ^| find /c ^"svchost^"') do set m=%%k
echo !m!
pause
goto start
A najlepiej zrób jak pisze Robert i skorzystaj z czegoś współczesnego, a nie
z BATów.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 12 days, 6 hours, 51 minutes and 34 seconds
|