
프로세스가 실행 중인지 확인하는 스크립트를 작성하려고 합니다(제 경우에는 가상 머신).
@echo off
wmic process where name="VirtualBox.exe" | find "GitHubEnterprise" /c > tmpcount
set /p count= < tmpcount
echo Number of instances = %count%
이렇게 하면 GitHub 인스턴스가 실행 중인지 여부를 확인할 수 있지만 find의 출력을 파일에 쓴 다음 다시 읽고 파일을 삭제할 수 있어야 합니다. (항상 VirtualBox.exe 복사본이 두 개 실행되고 있으므로 GitHubEnterprise 인스턴스가 실행 중인지 확인하려고 합니다.)
제가 하고 싶은 것은 find의 카운트 번호를 직접 변수에 저장하거나 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
답변1
SETX를 사용해 보세요.
환경 변수를 설정하고,SETX머신(HKLM) 또는 현재 로그온한 사용자(HKCU)에 대한 환경 변수를 설정하는 데 사용할 수 있습니다.
사용자 환경에서 _my_count 변수를 '5'로 설정합니다.
SetX _my_count 5
그런 다음 나중에 환경 변수를 읽으십시오.
IF "%_my_count%" == "" DOTHIS로 이동
또 다른 방법은 레지스트리와 REG 명령을 사용하는 것입니다.