Windows에서 특정 프로그램을 자동 중지

1989 단어 batch

취지



구체적으로는 KeePass라든지, 실수로 떨어뜨려 잊어 방치해 버려, 다른 머신으로 공유하고 있는 파일을 갱신해 버리면 파일 컨플릭트를 일으켜버저닝이 엉망이 되어 버리므로, 실수로 떨어뜨려 잊어 하는 KeePass를 자동으로 떨어뜨리고 싶다.
특히 Windows에서 해 버리기 쉽다.
그래서 Windows에 대해서만 쓴다. 리눅스에서도 하고 싶다면 killall keepass2를 cron으로 돌리면 된다고 생각한다.

방법



떨어뜨리는 법



특정 프로그램을 중지하려면 다음 명령을 사용할 수 있습니다.
taskkill /IM KeePass.exe

이 명령을 cmd.exe의 명령 줄 옵션으로 실행하도록 작업 스케줄러에 등록하면 완성됩니다.
cmd.exe /C taskkill /IM keepass.exe

/C와/R과/K가 있지만/C 또는/R이 좋다고 생각합니다.

작업 스케줄러에 등록


  • 관리 도구 작업 스케줄러 시작
  • 작업 스케줄러 라이브러리에서 "새 작업 만들기"
  • 트리거 설정
    아이돌시에 실행하기로 했다. 웹 정보에 따르면 15 분의 아이돌로 판단되는 것 같습니다.
    작업 스케줄러 유휴 시간 결정 - Microsoft 커뮤니티

  • 조작 설정

  • 태스크 이름 설정
    일반 탭에서 작업에 이름을 붙이지 않으면 저장할 수 없으므로 잊지 않을 것이라고 생각하지만, 아무것도 할 수 있습니다. close keepass라든지 알기 쉬운 것이 좋지 않을까.


  • 다른 설정은 아무리 적절하게.

    확인



    마지막으로, keepass를 기동한 상태에서 작성한 태스크를 오른쪽 클릭하고 「실행한다」로 동작 확인하면 완료.



    keepass를 시작하지 않으면 해당 IM 이름이 존재하지 않는다는 오류가 발생합니다.
    나는 신경 쓰지 않겠다고 생각하지만, 만약 궁금하다면 batch 파일에서 tasklist를 실행하고 find로 좁힌 다음 ERROREVEL을 참조하여 존재 확인한다.
    아마, 이런 느낌.
    이 bat 파일을 프로그램/스크립트의 란에 지정하면 OK.
    tasklist | find /I "keepass.exe" > nul
    if not a%errorlevel%==a1  (
        taskkill /IM keepass.exe
    )
    

    좋은 웹페이지 즐겨찾기