좋아, 지금 며칠 동안 많은 사이트에서 답변을 검색했습니다. 어딘가에 대답이 있다면, 저를 지적하면 괜찮습니다. 배치 파일 "A"를 텍스트 파일 "B"를 읽고 배치 파일 "C"의 코드를 대체하고 정보를 가져 오려고합니다. 처음 실행하면이 작업이 수행 된 다음 배치 파일 "C"가 실행됩니다. 배치 파일 "C"가 실행되는 동안 배치 파일 "A"는 텍스트 파일 "B"를보고 파일의 마지막으로 수정 된 부분을 변경합니다. 변경이 감지되면 배치 파일 "C"를 중지하고 텍스트 파일 "B"를 배치 파일 "C"에 읽기/쓰기 한 다음 배치 파일 "C"를 다시 시작해야합니다.배치 파일을 죽일 필요가 있습니다
변경 사항이 감지 될 때마다 배치 파일 "A"를 실행할 때를 제외하고 모든 작업을 수행하는 코드가 있으며, "C"라는 새 배치 파일을 시작합니다. 내가 p.terminate()와 p.kill()하지만, 어느 작품을 사용하려고했습니다
import subprocess
p = subprocess.Popen(r'start cmd /c C:\Users\james\Documents\FollowMeMap.bat', shell=True)
:
는 배치 파일 "C"내가 사용을 시작합니다. 모두에게 도움을 주셔서 감사합니다.
파이썬 3.4로 테스트) 과정에'cmd를/C "\ 사용자 제임스 \ 문서 \ \ FollowMeMap.bat cmd를/C C 시작"을 = True'. 'shell = True'없이 단순히 배치 파일을 실행 하는게 어떨까요? 새 콘솔 창이 필요하면'p = subprocess.Popen (r'C : \ Users \ james \ Documents \ FollowMeMap.bat ', creationflags = subprocess.CREATE_NEW_CONSOLE)'을 사용하십시오. 이와 같이,'p' 프로세스는 "FollowMeMap.bat"을 실행하는 실제 cmd.exe 인스턴스이며,'p.kill()'할 수 있습니다. – eryksun