Der Prozess taucht immer nur einmal auf, auch wenn ich mehrere PDFs offen habe. Das Problem ist aber, dass er trotzdem immer nur eine PDF schließt und der prozess so lange vorhanden ist, bis alle PDFs geschlossen sind. Da musst ich mir was anderes einfallen lassen. Zuerst hatte ich eine Schleife, die sich so lange wiederholt, bis sich der errorlevel ändert, aber da taskkill erst eine Fehlermeldung ausgeben musste, bis die Schleife abbricht, hab ich lieber was anderes genommen. So sieht es aus:
@echo off
:anfang
tasklist /FI "username eq lehmanns" /FI "imagename ne explorer.exe" /FI "imagename ne acrord32info.exe" /FI "imagename ne firefox.exe" /FI "imagename ne cmd.exe" /FI "imagename ne realmon.exe" /FI "imagename ne ctfmon.exe" /FI "imagename ne fpassist.exe" /FI "imagename ne jusched.exe" /FI "imagename ne hqtray.exe" /FI "imagename ne jucheck.exe" /FI "imagename ne tasklist.exe" > prozess.txt
FOR /F "tokens=2 skip=3" %%i IN (prozess.txt) DO (
ECHO PID: %%i wird beendet
taskkill /PID %%i
)
for /R %%A in (prozess.txt) do (
for %%I in ("%%A") do call :varBytes "%%A" %%~zI
)
:varBytes
SET end=B
SET /A var=%2
echo Die Datei %1 ist %var% %end% gross
if %var% == 0 (
echo Die Prozesse wurden alle beendet.
goto :ende
) ELSE (
echo Sprung zum Anfang. Die Prozesse werden neu ermittelt...
goto :anfang
)
:ende
pause
Am Ende überprüft er einfach ob die Datei, in der die Prozesse gespeichert wurden leer ist. Wenn ja, dann ist er fertig und wenn nicht, macht er die Prozessabfrage nochmal, speichert die Prozesse erneut und beendet sie wieder.