기 타 Batch Script 질문 하나 드립니다.
2018.03.08 14:41
배치 스크립트 질문 드립니다.
예를 들어서 XX.cmd 라는 배치파일을 실행하면
A.exe 가 현재 실행되고 있지 않으면, A.exe 를 실행하고 (tasklist, start 구문을 이용하여 작성할 수 있을 겁니다.)
A.exe 가 현재 실행되고 있으면 (프라세스 목록 상에 존재하면),
A.exe 를 실행종료 시키고 (아마 taskkill 구문을 이용할 거라고 생각합니다.)
B.exe 를 실행하는 배치 파일을 원합니다.
설명이 충분했는지 모르겠네요.
for 문과 if 문이 들어갈 거라고 생각되는데, 그 정도로 까지 배치스크립트를 잘 몰라서 이렇게 실례를 무릅쓰고 질문 드립니다.
감사합니다.
댓글 [7]
-
suk 2018.03.08 15:09
-
netic9 2018.03.08 16:10
suk 님 답변 감사드립니다.
위의 명령 구문에서 기호의 뜻을 한 번 말씀해 주시겠습니까?
| ?
|| ?
&& ?
& ?
너무 번거로운거 질문하네요. 죄송합니다.
-
suk 2018.03.08 16:26
| 는 앞에 명령의 결과를 읽는 역할 입니다
여기서는 tasklist 결과를 전부 읽게 됩니다
|| 은 앞에 명령이 실패한 경우입니다
&& 은 앞에 명령이 성공한 경우입니다.
질문에 대한 답변으로 나왔기 때문에 느낌상 둘다 아실 겁니다
& 는 일반적으로도 사용하듯이 and 입니다
왠지 저런 용어들을 다 아시면서 질문하신 것 보면 이미 다 알고 계신 듯 한 느낌이..^^
-
netic9 2018.03.08 17:00
"헉~ 들켰네요." 라고 말했으면 좋겠지만, 안타깝게도 그렇지 못합니다. ㅠ.ㅠ
열심히 공부해야되겠네요.^^
제가 total commander를 사용하는데, 하나의 버튼으로 어떤 프로그램의 실행과 종료를 동시에 할려고 이런 질문을 드렸던 것입니다.
거듭 감사드립니다.
-
netic9 2018.03.08 18:42
suk님 덕분에 배치파일 만들었습니다.
아래 내용입니다.
TASKLIST | FIND /i "epicpen.exe" > NUL
IF %ERRORLEVEL% equ 1 (
%commander_path%\utils\EpicPen.exe
) ELSE (
TASKKILL /im "epicpen.exe" /f
)EpicPen이라고 하는 모니터에 그림을 그리고 글자를 쓰는 프로그램을 ThinApp을 이용해서 portable로 만들었는데, 덕분에 좀 더 수월하게 Total Commander에서 하나의 버튼으로 ON / OFF 할 수 있게 되었습니다.^^
-
1709 2018.03.08 22:32 감사합니다.ㅎ
-
netic9 2018.03.09 01:36
위의 배치 파일은 단독으로 사용되었을 때는 문제 없는데, 여러가지 batch script가 모여진 곳의 위의 명령을 집어 넣으면 실행이 안되서 결국 for 구문에 대해서 googling해서 다시 만들었습니다. (문제점을 찾으려고 했지만, 제 능력이 부족해서 결국 포기했습니다.)
Total Commander로 ON_OFF, EpicPen.exe라는 매개변수 2개를 넘겼습니다.
ON_OFF라는 첫번째 매개변수를 만나면 2번째 매개변수(프로세스 목록의 이미지명)을 확인해서 ProcessFound / ProcessNotFound 로 분기되도록 구성했습니다.
혹 필요한 분 참조해서 보세요.
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set param1=%1
set param2=%2if "%param1%" == "ON_OFF" (
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %param2%"') DO IF %%x == %param2% goto ProcessFound
goto ProcessNotFound
)다른 명령어들 쭉 나열되어 있음
REM --------------------------------------------------------------------------------------------
GOTO end
:ProcessFound
IF %param2% == EpicPen.exe (
TASKKILL /im "EpicPen.exe" /f
GOTO end
)
REM --------------------------------------------------------------------------------------------
goto end
:ProcessNotFound
IF %param2% == EpicPen.exe (
%commander_path%\utils\EpicPen.exe
GOTO end
)
REM --------------------------------------------------------------------------------------------
:end
exit
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
73171 | 윈 도 우| 디펜더 예외 설정을 레지스트리로 할 수 있을까요? [2] | 엇갈린길 | 422 | 03-21 |
73170 | 소프트웨어| 모니터 4분할 프로그램 추천부탁드립니다. [2] | 루체 | 774 | 03-21 |
73169 | 소프트웨어| vmware 에서 AVX2 에러 | massekao | 233 | 03-21 |
73168 | 윈 도 우| 윈도우10 x64 RS3 - 탐색기에서 압축 풀기 등이 바로 나타... [2] | OutletIND | 566 | 03-21 |
73167 | 윈 도 우| 탐색기 잘아시는분 문의 드립니다. [6] | idonghun | 407 | 03-21 |
73166 | 윈 도 우| 윈도우10 위치 확인? [2] | idonghun | 554 | 03-21 |
73165 | 소프트웨어| 문의)) 울트라 램디스크 효과적으로 사용하는 방법 좀 알려... [1] | chobits | 773 | 03-20 |
73164 | 윈 도 우| IP주소 가져오는 배치 스크립트 부탁드립니다 [2] | 컨피그 | 624 | 03-20 |
73163 | 기 타| 음악플레이어 Aimp에서 [4] | 맨션에살자 | 476 | 03-20 |
73162 | 기 타| Thinstall 프로그램 [2] | gkgk77 | 478 | 03-20 |
73161 | 윈 도 우| 윈도우 10PE 에서 레지스트리 설정 값 좀 부탁 드립니다. [2] | 사랑맨 | 331 | 03-20 |
73160 | 기 타| 헬스보충제에 관한 정보를 구합니다. [2] | brucex | 240 | 03-20 |
73159 | 소프트웨어| 문의)) 램디스크에 동적메모리 의미??? [2] | chobits | 499 | 03-20 |
73158 | 하드웨어| PC 사양 및 바이오스/UEFI [10] | 읍민Kaine | 954 | 03-20 |
73157 | 윈 도 우| win pe에 닷넷 넣는 방법 부탁드립니다. [7] | 산사랑 | 392 | 03-20 |
73156 | 윈 도 우| 백업&복구 어떤거 쓰시나요? [12] | idonghun | 1126 | 03-20 |
73155 | 윈 도 우| Win10 RS3 시스텝 복원 오류... [5] | 붉은노을 | 575 | 03-20 |
73154 | 소프트웨어| acrobat 실행이 ㅠ.ㅠ 무슨 문제일까요? [2] | 블루마운틴 | 297 | 03-20 |
73153 | 윈 도 우| 토글키를 켜시겠습니까? 이거 안 뜨게 하는 법 있나요? [6] | ITML | 972 | 03-20 |
73152 | 소프트웨어| 팟플 이게 뭔뜻이고 [9] | aqz | 830 | 03-20 |
for 와 if 가 없어도 됩니다
tasklist | find /i "A.exe" || (start "A.exe"& exit)
tasklist | find /i "A.exe" && (taskkill /f /im "A.exe"& start "B.exe"& exit)
그런데 start "프로그램경로" 하면 cmd 창만 덩그러니 뜨는 경우가 많습니다
지금도 테스트 해보다가 cmd 창을 봤습니다..
위와 같은 형식이라면 explorer "프로그램경로" 가 더 잘 작동합니다
start 로는 /d 옵션을 사용해야 되는 경우가 많더군요. 된다고 해도 explorer 가 더 간단해서 좋습니다만..
start /d "폴더경로" 프로그램이름 - 이런 형식입니다.