Как остановить задачу, убить процесс (ы) и перезапустить задачу через CMD или powershell? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть задача, которая запускает программу каждые 10 минут для сканирования каталога, преобразования .doc в .pdf и перемещения их в другой каталог.

К сожалению, программа не может обрабатывать большие объемы winword.exe процессы, поэтому он часто останавливается в процессе. Когда это происходит, файлы .doc продолжают собираться, и мне приходится вручную перемещать файлы, поэтому это занимает немного времени.

Я написал exe (C:\Windows\System32\cmd.exe /k task kill /IM winword.exe /F) и бросил на рабочий стол. Я использую это, чтобы убить все процессы winword.exe, чтобы он очищал систему после того, как я остановил задачу, и затем снова запускаю задачу.

По сути, просто пытаюсь использовать одну функцию для КОНЕЦ задачи, запустить скриптубить winword.exe процессов и запустить задачу после того, как процессы будут убиты, но не уверен, какая функция будет лучше для этого.

Спасибо за любой совет.

1 Ответ

0 голосов
/ 08 ноября 2019

Хотя лучшим решением здесь было бы ограничить количество процессов winword, выполняемых одновременно как часть программы, как упоминал @Stephan, если вы хотите остановить запланированное задание, убить все процессы winword и запуститьЗадача снова, вы можете сделать это следующим образом в сценарии Powershell:

Stop-ScheduledTask -TaskName "Name of Scheduled Task"
Get-Process winword | Stop-Process -Force
Start-ScheduledTask -TaskName "Name of Scheduled Task"

Документация на Stop-ScheduledTask, Start-ScheduledTask, Get-Process и Stop-Process можно найти по предыдущим ссылкам.

...