好吧,我已經搜索了很多網站的答案几天了。如果某個地方有答案,如果你指出我沒有問題。我試圖讓批處理文件「A」讀取文本文件「B」並獲取一些信息,並將批處理文件「C」中的代碼替換掉。首先運行它將執行此操作,然後運行批處理文件「C」。當批處理文件「C」正在運行時,批處理文件「A」正在監視文本文件「B」以更改文件的最後修改部分。當檢測到變化時,我需要批處理文件「C」停止,讀/寫文本文件「B」到批處理文件「C」,然後再次啓動批處理文件「C」。需要殺死批處理文件
我有代碼工作,除了每次檢測到更改時運行批處理文件「A」時,它都會執行所有操作,它會啓動一個新的「C」批處理文件運行。
啓動批處理文件 「C」 我用:
import subprocess
p = subprocess.Popen(r'start cmd /c C:\Users\james\Documents\FollowMeMap.bat', shell=True)
我試着使用p.terminate()和p.kill(),但沒有作品。感謝大家的幫助。
您正在運行'CMD/C 「開始CMD/C C:\用戶\詹姆斯\文檔\ FollowMeMap.bat」',因爲'殼= 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