
Estoy intentando escribir un script que verifique si se está ejecutando un proceso (en mi caso, una máquina virtual).
@echo off
wmic process where name="VirtualBox.exe" | find "GitHubEnterprise" /c > tmpcount
set /p count= < tmpcount
echo Number of instances = %count%
Entonces, hacer esto me permite ver si mi instancia de GitHub se está ejecutando o no, pero requiere que pueda escribir el resultado de buscar en un archivo, luego volver a leerlo y eliminarlo. (Cabe señalar que hay dos copias de VirtualBox.exe ejecutándose en cualquier momento, por lo que estoy intentando verificar que la instancia de GitHubEnterprise se esté ejecutando).
Lo que me gustaría hacer es almacenar este número de recuento de la búsqueda directamente en una variable o usarlo en alguna forma de declaración if.
Ahora, a partir de mi propia investigación sobre esto, he visto muchas sugerencias sobre el uso de un for
bucle para esto y lo he intentado de la siguiente manera sin éxito:
@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
¿Alguien puede ver o decirme qué estoy haciendo incorrectamente aquí o hacer una sugerencia para hacerlo mejor?
Gracias a todos, que tengas un gran día.
J.D.
Respuesta1
Intente usar SETX,
Establecer variables de entorno,SETXse puede utilizar para configurar variables de entorno para la máquina (HKLM) o el usuario actualmente conectado (HKCU):
Establezca la variable _my_count en '5' en el entorno de usuarios:
SetX _mi_cuenta 5
luego lea la variable de entorno más tarde...
IF "%_my_count%" == "" IR A HACER ESTO
otra forma sería utilizar el registro y el comando REG.