當前位置:首頁 » 編程語言 » bat執行python

bat執行python

發布時間: 2023-09-03 18:09:37

python怎麼執行bat文件並傳遞參數給bat文件

使用os模塊的system方法可以執行命令,例如執行D盤的cmd.bat批處理腳本並傳入參數p1:

importos

os.system(r'D:cmd.batp1')

❷ python使用subprocess.Popen運行bat腳本時報不支持輸入重新定向錯誤分析

大圖請右擊在新標簽頁打開

Popen默認shell參數為False:

為True時默認使用 COMSPEC 環境變數指定的程序為shell:

在Windows上默認為cmd:

args參數為命令字元串時,因為dir是cmd的內建命令,需要指定shell=True:
例如:

而timeout,ping等都是獨立的exe,可以不需要cmd:

args參數是文件路徑形式時:

底層是調用了Windows的API,如下:

調試:

測試:

從調試結果以及測試來看,對於bat文件,可以不寫lpApplicationName參數,Windows會自動使用cmd來運行(使用vbs文件測試返回錯誤:不是正確的win32程序,要指定lpApplicationName為cscript.exe才行,可能只有bat才有這個特權了)。

輸入重定向的問題:
Popen是用創建子進程的方式來執行的,而timeout.exe在暫停時,可接受用戶按鍵來終止,這個時候會需要輸入,但是Popen給子進程的stdin只有

並不能讓timeout重定向到用戶輸入上,所以出錯。

解決的方法有很多,最簡單的替換掉timeout語句為ping -w xxx 127.0.0.1 或者直接由python來接管timeout。

❸ 如何將python命令全部放在bat中執行

bat和python混合編寫方法,以下代碼保存為xx.bat,編碼存為無bom頭的utf-8編碼
#encoding: utf-8
#Python 3.6.0
'''
@echo off&cls
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set num=3
python "%~f0" "%num%"
echo;%#% +%$%%$%/%@% %z%
pause&exit
'''
import sys
import pandas as pd
print(int(sys.argv[1]) * 10);
print('xx' * 3)

❹ bat 打開cmd 執行Python文件

python編碼啟動cmd批處理文件(.bat文件),用subprocess方法可以將相應的cmd輸出獲取到,代碼如下:
#import os
#os.system("c:\\sam.bat")
import subprocess
cmd = 'cmd.exe c:\\sam.bat'
p = subprocess.popen("cmd.exe /c" + "c:\\sam.bat abc", stdout=subprocess.pipe, stderr=subprocess.stdout)
curline = p.stdout.readline()
while(curline != b''):
print(curline)
curline = p.stdout.readline()
p.wait()
print(p.returncode)sam.bat批處理文件代碼:
echo hello world!
echo show %1%

❺ python調用完bat後,程序進入等待狀態了

使用python的子進程模塊來執行.bat文件。
不需要使用低級線程原語的多線程程序,如互斥,讀寫鎖,等待條件或信號。
用QtConcurrent編寫的程序會根據可用處理器內核的數量自動調整使用的線程數。

❻ 如何編寫bat腳本定時執行某python腳本

@echooff
rem這里的D:和D:Python是Python文件所在的盤及路徑
D:
cdD:Python

pythontest.py
pause
exit

❼ python自動運行cmd,bat文件

python編碼啟動cmd批處理文件(.bat文件),用subprocess方法可以將相應的cmd輸出獲取到,代碼如下:#importos#os.system

("c:\sam.bat")importsubprocesscmd='cmd.exec:\sam.bat'p=subprocess.

Popen("cmd.exe/c"+"c:\sam.batabc",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

curline=p.stdout.readline()while(curline!=b''):print(curline)urline=p.stdout.readline()

p.wait()print(p.returncode)sam.bat批處理文件代碼:echoHelloworld!echoshow%1%

(7)bat執行python擴展閱讀

在批處理.bat文件用通過這樣的語句調用explorer.exeC:xxx也可以使用用python的os庫可以實現代碼如下:importosos.system(r"explorer.exeC:\xxx")

即打開c盤的xxx文件夾,針對你的情況可以將這里改成你對應的路徑os.system(r"explorer.exe\10.9.40.22新建文件夾")就行了。

❽ 工作排程中Bat調用Python 程式無發打開(一閃而過)

試試python和py文件都用全路徑。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:558
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726