Використання пакету для перевірки запущеного процесу з WMIC


0

Я намагаюся написати сценарій, який перевірить, чи виконується процес (у моєму випадку це віртуальна машина)

@echo off
wmic process where name="VirtualBox.exe" | find "GitHubEnterprise" /c > tmpcount
set /p count= < tmpcount
echo Number of instances = %count%

Таким чином, це дозволяє мені бачити, чи працює мій екземпляр GitHub, але він вимагає, щоб я міг написати вивід пошуку у файл, а потім прочитати його назад і видалити файл. (Слід зазначити, що існує дві копії VirtualBox.exe, які виконуються в будь-який час, тому я намагаюся перевірити, чи запущено екземпляр GitHubEnterprise).

Те, що я хотів би зробити, це зберегти це число з числа безпосередньо в пошуку або використовувати його в тій чи іншій формі оператора if.

Тепер з моїх власних досліджень на це я бачив багато пропозицій щодо використання for цикл для цього, і я зробив спробу наступним чином без успіху:

@echo off
setlocal enableextensions
for /f "tokens=*" %%a in (
'wmic process where "name='VirtualBox.exe'" ^| find "GitHubEnterprise" /c'
) do ( 
@set count = %a
)
echo Number of instances = %count%
pause
endlocal

Чи може хтось побачити / сказати мені, що я роблю тут неправильно або робити пропозицію зробити це краще.

Спасибі всім, прекрасний день.

JD


Не могли б ви просто написати стартап & amp; сценарій вимкнення на GitHubEnterprise? Чи має він дзвонити додому / електронною поштою, коли віртуальний OS запущений або вимкнено? Було б добре, якби ми точно знали, що ви намагаєтеся досягти ...
Logman

Це сценарій, який запускається кожні 5 хвилин, щоб переконатися, що VM GitHubEnterprise працює і працює. Якщо це не так, він намагається запустити його назад. У мене вже є ця робота в даний час, але я хочу, щоб видалити залежність написання змінної значення файлу, то читати його назад.
JDD

Відповіді:


0

Спробуйте використовувати SETX,

Встановити змінні середовища, SETX може використовуватися для встановлення змінних середовища для машини (HKLM) або поточного користувача (HKCU):

Встановіть змінну _my_count на "5" у середовищі користувачів:

SetX _my_count 5

потім прочитати змінну середовища пізніше ...

IF "% _my_count%" == "" GOTO DOTHIS

Інший спосіб - використовувати реєстр і команду REG.


Чи можете ви показати, як це зробити, використовуючи цикл for wmic process where "name='VirtualBox.exe'" ^| find "GitHubEnterprise" команду
JDD
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.