導航:首頁 > 編程語言 > python中執行bat文件

python中執行bat文件

發布時間:2022-12-26 09:14:30

A. 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。

B. python運行bat文件

Python調用外部程序
os.system()和subprocess.call()

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

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

importos

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

D. 如何將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)

E. 如何用python運行bat文件

我沒有測試它的窗口盒。
這是我在Mac操作系統上的嘗試
Dinh-Phams-MacBook-Pro:tmp dinhpham$ cat > t.bat
print "abc"
Dinh-Phams-MacBook-Pro:tmp dinhpham$
Dinh-Phams-MacBook-Pro:tmp dinhpham$ python t.bat
abc

Python解釋器不關心.py擴展
如果要將.bat文件載入為Python模塊,只需使用
imp.load_source(path_to_file)

F. 關於在python中使用os.system運行批處理.bat文件

第一個執行後並沒有結果,因為隨著執行返回,當前目錄就改變了。
第二個可以切換當前目錄。
第三個跟第二個配合使用應該可以。或者用 os.path.join(DstDir,'test.bat') 來直接引用絕對路徑

G. python裡面怎麼執行bat文件

從執行結果看,其實已經執行了。
先執行一些簡單的命令,比如dir之類的看看。

H. python執行bat亂碼怎麼辦

python執行bat亂碼的解決辦法如下
bat文件右鍵用「 編輯」 打開,
另存為時,UTF-8保存為ANSI 格式。即可解決運行是亂碼問題。
更多技術請關注Python視頻教程。

I. python自動運行cmd,bat文件

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

("c:\sam.bat")import subprocesscmd = '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)urline = p.stdout.readline()

p.wait()print(p.returncode)sam.bat批處理文件代碼:echo Hello world!echo show %1%

(9)python中執行bat文件擴展閱讀

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

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

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

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

閱讀全文

與python中執行bat文件相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163