[Python] Python에서 배치 파일을 시작하고 변수를 전달합니다.

배치 파일이란?



Windows에서 실행되는 일련의 명령군을 기술한 파일입니다.
배치 파일에는 ".bat"와 ".cmd"확장자의 두 가지 유형이 있지만 기본적으로 동작은 동일합니다. 이 차이에 대해 자세히 알고 싶은 분은 아래의 기사를 참조하십시오.
.cmd(확장자)란?

왜이 기능이 필요합니까?



단순히 배치 명령을 배우는 것이 귀찮았기 때문입니다.
파이썬 측에서 처리해 버려, 그 결과를 배치 파일의 인수로서 건네주는 편이 쉬웠습니다.
다양한 라이브러리를 사용할 수 있고 ... (변명)

파이썬 측 준비



os.system() 함수의 인수에, .cmd 파일의 패스와 커멘드 라인 인수를 기술하는 것만으로, 지정한 .cmd 파일에 처리를 건네줄 수가 있습니다.

sys.argv 에서 인수 목록을 받을 수 있지만, 시작된 Python 파일 이름이 목록의 시작 부분에 포함되기 때문에 이를 제외하고 인덱스 1에서 for 루프를 돌립니다.

fuga.py
import os
import sys

cmd_file = "hoge.cmd"   # .cmdファイルへのパス
argvs = sys.argv        # 複数の引数を持つ場合
argc = len(argvs)

command = cmd_file

for i in range(1, argc):
    command += " " + argvs[i]

os.system(command)

cmd 파일 측 준비



명령행 인수를 모두 출력하는 명령을 기술해, 올바른 값이 취득되고 있는지 확인합니다.

hoge.cmd
@echo off

echo ".cmd Executed"

for %%f in (%*) do (
  echo %%f
)

echo "Completed"

결과



명령 프롬프트에서 방금 만든 Python 파일을 인수로 호출합니다.

파이썬 측에 지정된 인수를 .cmd 인수로 사용할 수있었습니다.

좋은 웹페이지 즐겨찾기