윈 도 우 배치파일 도움 요청드립니다.
2023.10.19 22:42
일정시간 설정 후 예약종료 배치파일을 사용하고 있던중
아래의 배치파일에서 예약종료 대신 특정 프로세서를 종료시키는 배치파일로 변형하여 사용하려는 중 한계가...
-------------------------------------------------
@set /p question="1은 예약종료, 2는 취소: "
@echo.
@if "%question%"=="1" goto end
@if "%question%"=="2" goto cancel
:end
@set /p miniute="몇 분 뒤에 종료: "
@set /a second=miniute*60
shutdown -s -t %second%
@exit
:cancel
@shutdown -a
@exit
-------------------------------------------------
사용하던 예약종료 배치파일은 위와 같고요.
아래는 위의 배치파일을 특정 프로세스 종료로 변형해서 만들어보려다 안되서 임시로 사용중인 배치파일입니다.
취소도 기능은 못하고 분단위 조정도 못해서 초로 사용중.. 거기다 실행뒤 cmd창이 떠있는 상태로 카운트되고 잘못누르면 취소..ㅜ
-------------------------------------------------
@set /p question="1은 프로세스 종료, 2는 취소: "
@echo.
@if "%question%"=="1" goto taskkill
@if "%question%"=="2" goto cancel
:taskkill
@timeout -t 몇초
@taskkill /f /im "notepad.exe"
@exit
:cancel
@shutdown -a
@exit
-------------------------------------------------
종료 배치파일처럼 작동하게 만드는게 불가능해서 급한대로 위와 같이 사용중입니다.
taskkill 명령어는 shutdown 명령어와는 다른듯해서 검색을 통해 이렇게 만들어 사용하는게 제 한계네요.
종료는 실행하면 우측 하단 트레이 위로 로그오프 배너가 떠서 아. 이게 실행되었구나. 라는걸 확인도 가능하고..
하지만 현재 수정해서 사용중인 테스크킬은 간신히 기능한 하는 수준.. 거기가 실행하면 창이 뜬 상태로 카운트가되고
그 창에서 실수로 뭔가 눌러버리면 취소가 되버린다는...
이걸 원래 사용하던 종료 배치파일과 유사하게 만드는 방법이 없을까요?
1번 - 프로세스 종료 실행
2번 - 취소
1번 실행 뒤 몇분 후 실행한건지 메제시(분단위로)
실행뒤 종료처럼 창이 안떠있고 백그라운드로 실행..
2번으로 실행 취소 가능 - 방법이 있다면 종료 배치파일처럼 실행과 취소를 뭔가의 창을 통해 알수있을는 방법이 있을지요?
쓸때없이 너무 장황하게 내용을 작성한거 같은데요..
결론은 위의 예약종료 배치파일처럼 예약프로세스 종료 배치파일이 가능한지입니다.
도움을 부탁드립니다.(_ _)
댓글 [10]
-
사랑이7 2023.10.20 10:08
-
Quen 2023.10.20 18:45
감사합니다. 일단 ctrl+c 할때까지 창이 꺼지지않고 유지되네요.
혹시 문구에 아래와 같은 메시지가 나오는건 어떤 이유일까요?
'msg'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
위의 메세지와는 별개로 프로세스킬은 잘 작동됩니다.
그리고 혹시 1번 치고난 뒤 시간을 분단위로 입력하고 엔터를 눌러 타이머가 시작되는 방법은 없을까요?
-
사랑이7 2023.10.20 19:46
win pro 이상에서만 되는 명령이라서 그러네요^^
다른방법입니다
=============================
@echo off
@set /p question="1은 프로세스 종료, 2는 취소: "
@echo.
@if "%question%"=="1" goto taskkill
@if "%question%"=="2" goto cancel
:taskkill
echo msgbox "1분 후에 종료" > msg.vbs
start /wait msg.vbs
del msg.vbs
timeout /t 60 /nobreak
taskkill /f /im "notepad.exe"
@exit
:cancel
@shutdown -a
@exit
-
Quen 2023.10.20 20:11
오.. 감사합니다.
vbs 이거 신기하네요.
잘 응용하여 사용도록 하겠습니다. 너무 고맙습니다~
-
Quen 2023.10.20 21:26
염치없지만 한가지 더 부탁드립니다.
1번 누른 뒤
메세지 출력창 없이
몇분 후 종료 할지 구문에 몇분입력 하면 시간이 카운트되는 방법도 가능할까요?
정해진 시간이 아닌 예약종료 배치와 같이 분값을 유동적으로 입력이 가능한 방법이 있을지 궁금합니다.
-
사랑이7 2023.10.20 21:34
@echo off
@set /p question="1은 프로세스 종료, 2는 취소: "
@echo.
@if "%question%"=="1" goto taskkill
@if "%question%"=="2" goto cancel
:taskkill
set /p endtime= 종료시간을 입력하세요 :
echo msgbox "%endtime%초 후에 종료" > msg.vbs
start /wait msg.vbs
del msg.vbs
timeout /t %endtime% /nobreak
taskkill /f /im "notepad.exe"
@exit
:cancel
@shutdown -a
@exit
-
사랑이7 2023.10.20 21:38
아래 3줄 삭제하면 메세지 창은 나오지 않을거예요
====================
echo msgbox "%endtime%초 후에 종료" > msg.vbs
start /wait msg.vbs
del msg.vbs
-
Quen 2023.10.20 21:44
고맙습니다. 완벽하네요
정말 큰 도움 얻어갑니다.(_ _)
-
사랑이7 2023.10.20 22:36
시간 단위를 분으로 하는 것도 참조하세요
========
@echo off
goto taskkill
@set /p question="1은 프로세스 종료, 2는 취소: "
@echo.
@if "%question%"=="1" goto taskkill
@if "%question%"=="2" goto cancel
:taskkill
set min=60
set /p endtime= 종료시간을 입력하세요(분) :
set /a endmin=endtime * min
echo msgbox "%endtime%분 후에 종료" > msg.vbs
start /wait msg.vbs
del msg.vbs
timeout /t %endmin% /nobreak
taskkill /f /im "notepad.exe"
@exit
:cancel
@shutdown -a
@exit
-
Quen 2023.10.27 17:17
오.. 분으로 잘되네요.
정말 큰 도움 받았네요. 감사합니다!!
@echo off
@set /p question="1은 프로세스 종료, 2는 취소: "
@echo.
@if "%question%"=="1" goto taskkill
@if "%question%"=="2" goto cancel
:taskkill
msg %username% 1분후에 종료
timeout /t 30 /nobreak
msg %username% 30초후에 종료
timeout /t 30 /nobreak
taskkill /f /im "notepad.exe"
@exit
:cancel
@shutdown -a
@exit