2016-10-04 3 views
2

То, что я пытаюсь сделать, это приостановить несколько процессов из одной папки в Windows 7. Я могу получить список такой proccessses с помощью следующих команд:приостановить все процессы из указанной папки

WMIC PROCESS WHERE 'ExecutablePath like "c:\\users%"' GET 

или

WMIC PROCESS WHERE 'ExecutablePath like "c:\\users%"' LIST 

Затем мне нужно приостановить действия, возвращаемые этими командами. Я могу это сделать, используя программное обеспечение PsSuspend. Итак, единственное, с чем я столкнулся, - это перебирать список и выполнять эту команду для каждого процесса. Это довольно легко сделать в сценариях bash, но как мне это сделать легко в Windows? Я бы предпочел использовать файл .bat или что-то подобное, поэтому он не будет слишком сложным.

ответ

0

Вот пример:

@Echo Off 
SetLocal EnableExtensions 

Rem Command 
(Set WC=Process) 
Rem Filter 
(Set WF=ExecutablePath Like) 
Rem Value 
(Set FV=%UserProfile%) 
Rem Output 
(Set RO=ProcessID) 
Rem Run 
(Set RC=PsSuspend) 

For /F "UseBackQ Skip=1" %%A In (
    `WMIC %WC% Where "%WF% '%FV:\=\\%%%'" Get %RO%`) Do For %%B In (%%A 
    ) Do %RC% %%B 

Я изменил линию 9 до % USERPROFILE% вы можете изменить его обратно C: \ Users, если вы думаете, я предполагал неправильно.

Смежные вопросы