W dniu 30.11.2015 o 20:13, peter pisze:
Mam skrypt w ubuntu, który zlicza w pętli liczbę moich aktualnych
procesów. Zlicza co jakiś czas tak długo aż wszystkie moje procesy
zakończą się.
Skrypt wygląda tak :
k=4
while [ $k -gt 0 ]
do
k=`ps -e | grep pfgw | wc -l`
echo $k
sleep 60
done
Teraz potrzebuję zaimplementować ten skrypt do windowsa jako bat
problem pierwszy, nie ma instrukcji while, rozwiązałem przy pomocy if i
goto
Znalazłem, że odpowiednikiem 4 linii jest
tasklist | find /c "svchost" rem svchost jest dla testów
Instrukcja ta po wpisaniu do wiersza poleceń wykonuje się prawidłowo.
Drukuje liczbę procesów svchost. Niestety wpisana do bata
set k=tasklist | find /c "svchost"
nie wykonuje się prawidłowo. Nic nie wpisuje do k.
Próbowałem różne kombinacje: nawiasy, cudzysłów, apostrof itp. Bez efektu.
Kto wie jak wpisać wartość tasklist... do zmiennej k tak jak działa to w
linuksie.
pozdrawiam,
Musi to być batch?
Nie po to Microsoft dodał 9 lat temu PowerShell-a do systemu
abyśmy dalej męczyli się w 2015 roku z "bat"-ami
Twój skrypt z linuxa przepisał bym tak pod powershell-a:
$k = 4
Do {
$k = ( Get-Process svchost | measure ).Count
"number of 'svchost' processes running: $k"
start-sleep 60
} While ($k -ne 0)
--
Robert
|