Похожие вопросы

Пакет-получение url-адреса файла из html-документа
runas / savecred ошибка 1311 нет сервера входа
Пакетный файл-копирование двух новых файлов из одной папки в другую
Как отправить сообщение SIP с помощью пакетной программы
Пакетный скрипт для обрезки строк в тексте только до первых 30 или 50 символов
Запуск файла bat без командного окна от имени администратора?
Как создать пользователя Windows из командной строки, используя пароль из файла
Сценарий включения автоматического входа для пользователей домена не будет работать, если я не запущу его дважды
пакетный файл для удаления и переназначения букв дисков
Пакетный файл переименовать случайным буквенно-цифровым
Как выполнить папку (vpk.exe) с cmd
Как автоматизировать photoshop из командной строки
Поиск и замена гиперссылок в PDF
Что означает знак процента (%и %%) в аргументе пакетного файла?
Использование DiskPart в пакетном файле для удаления диска

Запустите процесс и верните его PID (как CHP.EXE) для пакетного файла

Я ищу что-то вроде ЧП.exe, он может выполнить команду и возвращает свой pid.
Я не могу использовать ТЭЦ.EXE, потому что это, кажется, сообщается как зараженный файл в некоторых антивирусов.

спасибо

5
задан Tobia
источник

3 ответов

Wmic process where (Name like '%CHP%') get caption, name, commandline, ProcessId | more

реальный пример:

Wmic process where (Name like '%ie%') get caption, name, commandline, ProcessId | more

выход:

ProcessId where like name Wmic Far manager

Wmic process get ProcessId

извлечь только processId в переменную из вывода запроса:

ProcID.cmd:

@ECHO OFF                                                                              
FOR /F %%T IN ('Wmic process where^(Name^="explorer.exe"^)get ProcessId^|more +1') DO (
SET /A ProcessId=%%T) &GOTO SkipLine                                                   
:SkipLine                                                                              
echo ProcessId = %ProcessId%                                                           

выход:

ProcessId = 2372    
4
отвечен STTR 2013-05-28 09:49:24
источник

Это довольно просто сделать в PowerShell. Start-Process notepad.exe -PassThru запустит блокнот и возврата:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName                                                                                                                              
-------  ------    -----      ----- -----   ------     -- -----------                                                                                                                              
     45       6     1672       4240    61     0.02   9212 notepad   

оттуда вы можете использовать его как объект, сохраняя вывод ($notepad = Start-process notepad.exe -PassThru а то $notepad.ID) и закончить все сценарии вы делали с ним.

возврат к пакетному скрипту (если это абсолютно необходимо) немного сложнее. Если вы совершенно застряли в использовании пакетного файла, то, вероятно, проще всего написать сценарий PowerShell, который соответствующие сведения о файле или разделе реестра, вызовите сценарий PowerShell из пакетного файла, а затем прочитайте файл или раздел реестра далее в пакетном сценарии.

если вы не хотите, чтобы коснуться PowerShell на всех, то вам придется прибегнуть к WMIC или tasklist, чтобы найти процесс после его создания.

2
отвечен Tanner Faulkner 2013-05-20 15:43:42
источник

вы можете запустить программу, а затем выполните следующую команду, заменив firefox С именем процесса требуется:

for /f "tokens=2" %a in ('tasklist /nh /fi "imagename eq firefox.exe"') do echo %a

Он выведет pid исключительно в моем случае выход 5540

0
отвечен w17t 2014-10-05 06:30:21
источник

Другие вопросы batch pid