팁과 강좌

파이썬으로 제작된 디스코드 봇을 bat 파일로 구동하기

인심좋은 2022. 12. 20. 23:10

지난번에 보이스 채널 출입하는 인원을 알려주는 봇을 파이썬으로 제작하였다.

 

파이썬이라는 언어 자체가 워낙 초보자도 접근하기 쉽게 되어있고, discord.py 또한 별도의 구조에 대한 지식 없이도 제공되는 API reference를 동해 문법만 봐도 적용하기 쉽게 되어 있다.

 

이렇게 짠 파이썬을 구동할려고 하는데 이건 봇이다 보니 코드가 한번 쭉 실행되고 끝이 아니고 계속 스탠바이 상태로 있어야한다는 조건이 있다.

일반적으로는 VS Code에서 Run 하면 Ctrl+C 로 강종하지 않는 이상 계속 돌기 때문에 컴퓨터를 계속 켜놓고 있으면 되는데, 이게 봇이 2개 이상일 경우 거슬린다. 상당히 말이다.

 

2종 이상의 스크립트를 동시 돌릴려면 VS Code를 2개를 켜야한다.

심지어 컴퓨터를 키면 VS Code를 키고 스크립트를 열어서 run 해줘야하는 불편함도 덤이다.

 

그래서 알아보던 중 배치파일로 해결할 수 있다는걸 알았다.

 

참고로 저는 윈도우 11 입니다. 

 

우선 메모장을 키셔도 되고, VS Code 를 키셔도 됩니다.

Type 는 bat 입니다. 메모장을 쓰실경우 확장자를 .bat 로 바꾸시면 됩니다.

 

wt python 파일경로\파일명.py

 

이렇게 쓰고 저장 후에 생성된 배치파일을 실행하면 CMD 창이 뜨면서 VS Code 터미널에서처럼 작동되는걸 확인 하실 수 있습니다.

 

※ 파일 경로는 배치파일이 파이썬 스크립트 파일과 동일한 위치에 있다면 파일명만 적으셔도 되지만, 서로 다른 폴더에 있다면, 전체 경로를 다 써주셔야 합니다.

 

여기서 만약 실행할 파이썬 스크립트가 2종이라면 배치파일을 2개를 만들어서 실행하셔도 됩니다.

그런데 이러면 CMD 창이 2개가 떠서 하단 작업 표시줄이 복잡해질 겁니다.

이럴 경우 CMD를 탭으로 실행할 수 있습니다.

 

wt python 1파일경로\1파일명.py ; new-tab python 2파일경로\2파일명.py

 

이렇게 입력하면 

 

 

이렇게 탭 형식으로 2개의 파이썬이 실행 됩니다.

저는 Powershell 에서 실행시켰는데, powershell 로 실행시키고 싶으면

 

wt Powershell python 파일경로\파일명.py

 

이렇게 wt 뒤에 실행하고자하는 프로필을 적으시면 됩니다.

참고 자료는 아래 링크 참고 하시기 바랍니다.

 

Windows 터미널 명령줄 인수 | Microsoft Learn

 

Windows 터미널 명령줄 인수

Windows Terminal에 대한 명령줄 인수를 만드는 방법을 알아봅니다.

learn.microsoft.com

 

여기서 추가로 윈도우를 키면 자동으로 배치파일이 실행되게 할 수도 있습니다.

윈도우11에서는 작업표시줄에 검색이 "실행" 을 눌러서 "shell:startup" 을 치시면, 시작 프로그램 폴더가 뜰겁니다.

 

 

여기서 아까 만든 배치파일을 넣으시면 됩니다.

저는 여기서 문제가 생겨서 그냥 컴퓨터 키고 봇실행 배치파일을 눌러서 가동 합니다.

이유는 비트디펜더 백신을 쓰는 중인데 이 프로그램이 시작프로그램 폴더 내에 있는 배치 파일을 불량한 파일로 인식해서 컴퓨터를 정지 시켜버리더군요. 그래서 위 방법을 사용하지 못하고 있습니다.

 

다른 방법으로는 작업 스케줄러를 사용할 수도 있습니다.

검색 창에서 "작업 스케줄러"를 치시고 실행하면, 

 

 

작업 만들기로 들어가셔서 여러 조건 하에 파일이 실행되도록 설정할 수 있습니다.

저는 아직 안 써봤는데, 시작프로그램 폴더를 이용하는 것보다는 작업 스케줄러로 설정하는게 더 나은 방법일 겁니다.

 

 

 

PS. 저번 글에서도 언급했지만 저는 비전공자로 지금 작성하고 있는 것들은 제가 필요에 의해 구글링이나 네이버링을 통해 이것저것 해보고 되길래 올리는 글입니다.

 만약 이게 틀렸어!! 라고 생각하신다면, 님 생각이 맞습니다. 지적과 개선 의견은 고맙게 받겠습니다. 감사합니다.

 

반응형