기 타 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 | - | - |
72989 | 윈 도 우| 도와주세요. 고수님들 [1] | 수담 | 421 | 03-09 |
72988 | 윈 도 우| 응용프로그램 오류 후 재부팅 하드인식불가(사진첨부) | fprrmsl | 364 | 03-09 |
72987 | 소프트웨어| 토큰 백업파일 오피스2016 cmd 만들줄실분요 [1] | gkgk77 | 697 | 03-09 |
72986 | 윈 도 우| 우클릭 프로그램 추가 시 문의사항입니다. [2] | PiscesKyle | 225 | 03-09 |
72985 | 윈 도 우| 혹시 일본판 윈도우7프로 32비트 ISO 이미지 구할수 있을까요? [4] | 낭만도동넘 | 445 | 03-09 |
72984 | 윈 도 우| 윈도우10 자체 백업프로그램 이용시 질문 [3] | 이롱이 | 741 | 03-09 |
72983 | 윈 도 우| 윈도우10 은 윈도우창이나 윈도우안에 배경색 어떻게 바꾸... | 센시로 | 799 | 03-09 |
72982 | 하드웨어| 케이스에 있는 하드독 질문있습니다 [2] | 보이져125 | 382 | 03-09 |
72981 | 윈 도 우| Windows 10 RS3 폴더 공유 질문입니다. [1] | 파란하늘촌 | 440 | 03-08 |
72980 | 윈 도 우| 제이유컴님 boot-CH-TEST-2.WIM 궁금점이 있습니다. [1] | 포토엔유 | 277 | 03-08 |
72979 | 윈 도 우| 윈도우10 부팅시 이상하게 토렌트가 자꾸 실행됩니다.. [10] | 센시로 | 2529 | 03-08 |
72978 | 윈 도 우| 윈도우 탐색기에서 "명령 프롬프트 열기" 메뉴를... [1] | 깐지 | 619 | 03-08 |
72977 | 소프트웨어| excel 매크로에 관한 질문입니다. [2] | 검은눈동자 | 263 | 03-08 |
72976 | 윈 도 우| BIOS ROM 파일은 어떻게 실행하나요 [7] | 치이타 | 636 | 03-08 |
72975 | 윈 도 우| 읜도우단축키 [2] | tkEh | 475 | 03-08 |
72974 | 하드웨어| Windows 10 RS3 에 SKY TV 문제 [13] | mso | 745 | 03-08 |
» | 기 타| Batch Script 질문 하나 드립니다. [7] | netic9 | 346 | 03-08 |
72972 | 윈 도 우| 윈10 1703>>1709 [6] | 1703 | 893 | 03-08 |
72971 | 서버 / IT| 네이버 구글 다음이 안돼요ㅜㅠ [1] | 볶음국수 | 465 | 03-08 |
72970 | 소프트웨어| sleep 모드에서 알람으로 꺠어나는 프로그램 소개해주세요 [1] | brucex | 163 | 03-08 |
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 "폴더경로" 프로그램이름 - 이런 형식입니다.