Учебники

Пакетный скрипт – Процесс

В этой главе мы обсудим различные процессы, включенные в пакетный скрипт.

Просмотр списка запущенных процессов

В Batch Script команду TASKLIST можно использовать для получения списка текущих запущенных процессов в системе.

Синтаксис

TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter]
[/FO format] [/NH]

S.No. Варианты и описание
1.

Система

Определяет удаленную систему для подключения

2.

/ U

[домен \] пользователь

Определяет пользовательский контекст, в котором должна выполняться команда.

3.

/ P [пароль]

Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.

4.

/ M [модуль]

Перечисляет все задачи, в настоящее время использующие имя exe / dll. Если имя модуля не указано, отображаются все загруженные модули.

5.

/ SVC

Отображает службы, размещенные в каждом процессе.

6.

/ V ,

Отображает подробную информацию о задаче.

7.

/ FI фильтр

Отображает набор задач, которые соответствуют заданным критериям, указанным фильтром.

8.

/ FO формат

Определяет формат вывода. Допустимые значения: «TABLE», «LIST», «CSV».

9.

/ NH

Указывает, что заголовок столбца не должен отображаться в выходных данных. Действительно только для форматов “TABLE” и “CSV”.

Система

Определяет удаленную систему для подключения

/ U

[домен \] пользователь

Определяет пользовательский контекст, в котором должна выполняться команда.

/ P [пароль]

Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.

/ M [модуль]

Перечисляет все задачи, в настоящее время использующие имя exe / dll. Если имя модуля не указано, отображаются все загруженные модули.

/ SVC

Отображает службы, размещенные в каждом процессе.

/ V ,

Отображает подробную информацию о задаче.

/ FI фильтр

Отображает набор задач, которые соответствуют заданным критериям, указанным фильтром.

/ FO формат

Определяет формат вывода. Допустимые значения: «TABLE», «LIST», «CSV».

/ NH

Указывает, что заголовок столбца не должен отображаться в выходных данных. Действительно только для форматов “TABLE” и “CSV”.

Примеры

TASKLIST

Приведенная выше команда получит список всех процессов, запущенных в вашей локальной системе. Ниже приведен снимок вывода, который отображается при запуске вышеуказанной команды. Как видно из следующего вывода, вы не только получаете различные процессы, запущенные в вашей системе, вы также получаете использование памяти каждым процессом.

Image Name                    PID       Session Name       Session#     Mem Usage
========================= ========    ================ =========== ============
System Idle Process             0        Services            0              4 K
System                          4        Services            0            272 K
smss.exe                      344        Services            0          1,040 K
csrss.exe                     528        Services            0          3,892 K
csrss.exe                     612        Console             1         41,788 K
wininit.exe                   620        Services            0          3,528 K
winlogon.exe                  648        Console             1          5,884 K
services.exe                  712        Services            0          6,224 K
lsass.exe                     720        Services            0          9,712 K
svchost.exe                   788        Services            0         10,048 K
svchost.exe                   832        Services            0          7,696 K
dwm.exe                       916        Console             1        117,440 K
nvvsvc.exe                    932        Services            0          6,692 K
nvxdsync.exe                  968        Console             1         16,328 K
nvvsvc.exe                    976        Console             1         12,756 K
svchost.exe                  1012        Services            0         21,648 K
svchost.exe                   236        Services            0         33,864 K
svchost.exe                   480        Services            0         11,152 K
svchost.exe                  1028        Services            0         11,104 K
svchost.exe                  1048        Services            0         16,108 K
wlanext.exe                  1220        Services            0         12,560 K
conhost.exe                  1228        Services            0          2,588 K
svchost.exe                  1276        Services            0         13,888 K
svchost.exe                  1420        Services            0         13,488 K
spoolsv.exe                  1556        Services            0          9,340 K

tasklist > process.txt

Приведенная выше команда берет вывод, отображаемый в списке задач, и сохраняет его в файле process.txt.

tasklist /fi "memusage gt 40000"

Приведенная выше команда извлекает только те процессы, чья память превышает 40 МБ. Ниже приведен пример вывода, который можно отобразить.

Image Name                    PID      Session Name     Session#     Mem Usage
=========================   ======== ================ =========== ============
dwm.exe                        916     Console             1        127,912 K
explorer.exe                  2904     Console             1        125,868 K
ServerManager.exe             1836     Console             1         59,796 K
WINWORD.EXE                   2456     Console             1        144,504 K
chrome.exe                    4892     Console             1        123,232 K
chrome.exe                    4976     Console             1         69,412 K
chrome.exe                    1724     Console             1         76,416 K
chrome.exe                    3992     Console             1         56,156 K
chrome.exe                    1168     Console             1        233,628 K
chrome.exe                     816     Console             1         66,808 K

Убить определенный процесс

Позволяет пользователю, работающему под управлением Microsoft Windows XP professional, Windows 2003 или более поздней версии, завершить задачу из командной строки Windows по идентификатору процесса (PID) или имени изображения. Команда, используемая для этой цели, является командой TASKILL.

Синтаксис

TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] 
[/PID processid | /IM imagename] } [/T] [/F]

S.No. Варианты и описание
1.

Система

Определяет удаленную систему для подключения

2.

/ U

[домен \] пользователь

Определяет пользовательский контекст, в котором должна выполняться команда.

3.

/ P [пароль]

Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.

4.

/ FI

FILTERNAME

Применяет фильтр для выбора набора задач. Позволяет использовать «*». ех. imagename eq acme * См. фильтры ниже для получения дополнительной информации и примеров.

5.

/ PID

ProcessId

Указывает PID процесса, который должен быть завершен. Используйте TaskList, чтобы получить PID.

6.

ImageName

Определяет имя изображения процесса, который будет завершен. Подстановочный знак «*» можно использовать для указания всех задач или имен изображений.

7.

/ Т

Завершает указанный процесс и любые дочерние процессы, которые были запущены им.

8.

/ F

Указывает на принудительное завершение процесса (ов).

Система

Определяет удаленную систему для подключения

/ U

[домен \] пользователь

Определяет пользовательский контекст, в котором должна выполняться команда.

/ P [пароль]

Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.

/ FI

FILTERNAME

Применяет фильтр для выбора набора задач. Позволяет использовать «*». ех. imagename eq acme * См. фильтры ниже для получения дополнительной информации и примеров.

/ PID

ProcessId

Указывает PID процесса, который должен быть завершен. Используйте TaskList, чтобы получить PID.

ImageName

Определяет имя изображения процесса, который будет завершен. Подстановочный знак «*» можно использовать для указания всех задач или имен изображений.

/ Т

Завершает указанный процесс и любые дочерние процессы, которые были запущены им.

/ F

Указывает на принудительное завершение процесса (ов).

Примеры

taskkill /f /im notepad.exe

Приведенная выше команда убивает задачу открытия блокнота, если она открыта.

taskill /pid 9214

Приведенная выше команда убивает процесс, который имеет процесс 9214.

Начиная новый процесс

У сценариев DOS также есть возможность начать новый процесс. Это достигается с помощью команды СТАРТ.

Синтаксис

START "title" [/D path] [options] "command" [parameters]

В которой

  • title – Текст для строки заголовка окна CMD (обязательно.)

  • путь – Начальный каталог.

  • команда – команда, командный файл или исполняемая программа для запуска.

  • параметры – параметры, переданные в команду.

title – Текст для строки заголовка окна CMD (обязательно.)

путь – Начальный каталог.

команда – команда, командный файл или исполняемая программа для запуска.

параметры – параметры, переданные в команду.

S.No. Варианты и описание
1.

/ MIN

Стартовое окно свернуто

2.

/МАКСИМУМ

Окно запуска развернуто.

3.

/НИЗКИЙ

Используйте приоритетный класс IDLE.

4.

/НОРМАЛЬНЫЙ

Используйте НОРМАЛЬНЫЙ класс приоритета.

5.

/ВЫШЕ НОРМЫ

Используйте ABOVENORMAL приоритетный класс.

6.

/НИЖЕ НОРМЫ

Используйте НИЖЕ НОРМАЛЬНЫЙ приоритетный класс.

7.

/ВЫСОКО

Используйте ВЫСОКИЙ приоритетный класс.

8.

/ АВТОКОРРЕКЦИЯ

Используйте REALTIME приоритетный класс.

/ MIN

Стартовое окно свернуто

/МАКСИМУМ

Окно запуска развернуто.

/НИЗКИЙ

Используйте приоритетный класс IDLE.

/НОРМАЛЬНЫЙ

Используйте НОРМАЛЬНЫЙ класс приоритета.

/ВЫШЕ НОРМЫ

Используйте ABOVENORMAL приоритетный класс.

/НИЖЕ НОРМЫ

Используйте НИЖЕ НОРМАЛЬНЫЙ приоритетный класс.

/ВЫСОКО

Используйте ВЫСОКИЙ приоритетный класс.

/ АВТОКОРРЕКЦИЯ

Используйте REALTIME приоритетный класс.

Примеры

START "Test Batch Script" /Min test.bat

Приведенная выше команда запустит пакетный скрипт test.bat в новом окне. Окна начнутся в свернутом режиме и также будут иметь название «Test Batch Script».

START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"

Приведенная выше команда фактически запустит Microsoft Word в другом процессе, а затем откроет файл TESTA.txt в MS Word.