기 타 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 | - | - |
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 |
72969 | 윈 도 우| Winpe 2.0 활성화에 대해서 물어 봅니다 [2] | 임달화 | 196 | 03-08 |
72968 | 소프트웨어| Rufus를 이용한 듀얼부팅 usb 제작해 사용해 보신 분 계신... [7] | lakeside | 1102 | 03-08 |
72967 | 윈 도 우| 운도우cd없는데 윈도우 포맷하고 재설치할수있나요? [4] | 윈도우초보 | 688 | 03-08 |
72966 | 윈 도 우| uefi 펌웨어에 대한 디스크 레이아웃이 지원되지 않습니다 [1] | 줄넘기 | 1628 | 03-08 |
72965 | 윈 도 우| Pe에 대해서 문의합니다 [2] | 임달화 | 248 | 03-08 |
72964 | 윈 도 우| 왼쪽 시작 단추를 누르면 앱이 나오는데 앱들을 완전히 지... [5] | 한번에한걸음씩 | 500 | 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 "폴더경로" 프로그램이름 - 이런 형식입니다.