[배치파일] 실행중인 프로세스 경로를 변수에 저장하기
윈도우즈/OS 일반2021. 12. 4. 07:00
반응형
배치파일의 %~dp0 는 동작을 하지만 exe 로 변환시 동작하지 않는 부분이 있어 아래 내용을 작성합니다.
예제에서는 explorer.exe 실행 경로를 찾아 변수에 저장하는 것으로 합니다.
아래와 같이 배치파일을 만들어 실행해 봅니다.
test.bat
@echo off FOR /F "delims=" %%i IN ('wmic process where name^="explorer.exe" get ExecutablePath') DO ( echo %%i |find /i "explorer.exe" >nul if errorlevel 1 (echo notfound) else (echo found && set item=%%i) ) echo %item% FOR %%i IN ("%item%") DO ( echo filedrive=%%~di echo filepath=%%~pi echo filename=%%~ni echo fileextension=%%~xi ) |
둘째줄에 IN 다음 괄호안에 들어오는것이 원래의 명령어인데 출력되는 라인이 많기도 하고 원하는
줄 (총 3줄에서 2번째줄) 이 변수에 넣기 힘든 부분이 있습니다.
(괄호 안에서는 name= 부분에 = 가 특수문자로 인식되어 앞에 ^ 를 추가함)
세번째줄에서 각 행을 출력할때마다 Explorer 가 있는지 살펴보고 있으면 set item=%%i 를 실행하여 item 변수에
디렉토리와 파일의 온전한 경로를 넣습니다.
마지막으로 획득한 파일 경로를 드라이브명, 디렉토리, 파일명, 확장자로 나누어 출력해 보았습니다.
아래 코드를 추가하면 원하는 부분만 조합이 가능합니다. (파일명 제외하고 디렉토리만 : C:\Windows\)
set a=%%~di
set b=%%~pi
echo %a%%b%
반응형
'윈도우즈 > OS 일반' 카테고리의 다른 글
윈도우즈 동시 접속 사용자 수 변경 및 유휴 세션 종료하기 (0) | 2024.04.22 |
---|---|
Windows 에서 Docker 사용하기 (Windows Container) (0) | 2023.10.10 |
명령어로 작업 스케쥴러에 시작 프로그램으로 등록하기 (0) | 2020.06.09 |
배치파일 실행시 인자값 전달 받기 (0) | 2020.06.09 |
배치파일에서 문자열 자르기 (부분 추출) (0) | 2020.06.09 |
댓글()