一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python簡單幾步獲取各種DOS命令顯示的內容詳解流程

python簡單幾步獲取各種DOS命令顯示的內容詳解流程

2022-02-16 00:29Hann Yang Python

你會用python獲取各種DOS命令顯示的內容核心嗎?說的可不是返回值,是用system()函數調用windows操作系統的DOS命令來做點事情,需要的朋友可以參考下

我們經常在C/C++中用“system("pause");”作暫停語句外,還有很多可以用system()調用,比如以下這些dos命令的功能也很不錯:

system("title C++顏色設置程序"); //設置控制臺窗口的標題,即cmd.exe的標題
 
system("mode con cols=64 lines=25"); //設置窗口寬度高度
 
system("date /t");  //顯示日期
 
system("time /t");  //顯示時間
 
system("shutdown -s -t 3600");  //延時關機  3600秒即一小時后關機
 
system("shutdown -a");  //取消延時關機
 
system("color 0B");  //設置文本和背景顏色

核心就用system()函數調用windows操作系統的DOS命令來做點事情,iOS、linux系統中也一樣,僅需把引號中的命令行字符串換成對應操作系統的命令即可。

Python語言中,os庫的system()函數同樣也是這個功能,舉個例子:

>>> import os
>>> for _ in range(5):
	t = os.system("echo ?")
 
	
>>> t
0
>>> 

以上代碼可以發出5次蜂鳴聲,這個實質就是ascii字符7(beep)的顯示。它在Python IDLE窗口中呈現為“echo ?”中的那個粗圓點,可以用alt鍵+小鍵盤上的007鍵入;在DOS窗口下的python中除了這個方法還能用“Ctrl+G”錄入,呈現為“echo ^G”。

代碼運行結束后,t 就接受了echo命令的返回值,DOS命令執行成功一般都返回 0 。

同樣換個DOS命令“Date /t”來顯示日期:

>>> import os
>>> os.system("Date /t")
0
>>> 

同樣,也只返回一個 0 ,沒有見到日期顯示,但在控制臺窗口下是可以顯示的:

python簡單幾步獲取各種DOS命令顯示的內容詳解流程

time 命令也一樣,另外這兩個命令還能用“echo 環境變量”來實現。看上圖中語句返回的兩行第一行顯示的是我們想獲取的值,第二行是命令返回值,通過賦值只能得到這個返回值 0 。

python簡單幾步獲取各種DOS命令顯示的內容詳解流程

題外話:DOS中用兩個%把環境變量名括起來表示一個環境變量, 可以用dos命令 set 來顯示和設置這些系統環境變量。除了用“set path”外,path 命令可以單獨顯示 %PATH% 變量。

從上圖中可以看到,用引號和波浪線 :~pos, length 可以把環境變量值按開始位置和所要長度來分割開,類似python的字符串切片: str="2021-10-19"; str[0:4]。

各個時期的Dos版本的內部命令有增有減個數不定,另外還有很多的外部命令可用。

python簡單幾步獲取各種DOS命令顯示的內容詳解流程

D:>set os
OS=Windows_NT
 
D:>set systemdrive
SystemDrive=C:
 
D:>set windir
windir=C:Windows
 
D:>set path
Path=C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;D:PythonScripts;D:Python
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
 
D:>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
 
D:>path
PATH=C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;D:PythonScripts;D:Python
 
D:>ver
 
Microsoft Windows [版本 6.1.7601]
 
D:>

列出當前DOS版本的所有內部命令:

>>> import os
>>> print("".join(os.popen("help").readlines()[2:-3]))
ATTRIB 顯示或更改文件屬性。
BREAK 設置或清除擴展式 CTRL+C 檢查。
BCDEDIT 設置啟動數據庫中的屬性以控制啟動加載。
CACLS 顯示或修改文件的訪問控制列表(ACL)。
CALL 從另一個批處理程序調用這一個。
CD 顯示當前目錄的名稱或將其更改。
CHCP 顯示或設置活動代碼頁數。
CHDIR 顯示當前目錄的名稱或將其更改。
CHKDSK 檢查磁盤并顯示狀態報告。
CHKNTFS 顯示或修改啟動時間磁盤檢查。
CLS 清除屏幕。
CMD 打開另一個 Windows 命令解釋程序窗口。
COLOR 設置默認控制臺前景和背景顏色。
COMP 比較兩個或兩套文件的內容。
COMPACT 顯示或更改 NTFS 分區上文件的壓縮。
CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換
當前驅動器。
COPY 將至少一個文件復制到另一個位置。
DATE 顯示或設置日期。
DEL 刪除至少一個文件。
DIR 顯示一個目錄中的文件和子目錄。
DISKCOMP 比較兩個軟盤的內容。
DISKCOPY 將一個軟盤的內容復制到另一個軟盤。
DISKPART 顯示或配置磁盤分區屬性。
DOSKEY 編輯命令行、調用 Windows 命令并創建宏。
DRIVERQUERY 顯示當前設備驅動程序狀態和屬性。
ECHO 顯示消息,或將命令回顯打開或關上。
ENDLOCAL 結束批文件中環境更改的本地化。
ERASE 刪除一個或多個文件。
EXIT 退出 CMD.EXE 程序(命令解釋程序)。
FC 比較兩個文件或兩個文件集并顯示它們之間的不同。
FIND 在一個或多個文件中搜索一個文本字符串。
FINDSTR 在多個文件中搜索字符串。
FOR 為一套文件中的每個文件運行一個指定的命令。
FORMAT 格式化磁盤,以便跟 Windows 使用。
FSUTIL 顯示或配置文件系統的屬性。
FTYPE 顯示或修改用在文件擴展名關聯的文件類型。
GOTO 將 Windows 命令解釋程序指向批處理程序
中某個帶標簽的行。
GPRESULT 顯示機器或用戶的組策略信息。
GRAFTABL 啟用 Windows 在圖形模式顯示擴展字符集。
HELP 提供 Windows 命令的幫助信息。
ICACLS 顯示、修改、備份或還原文件和
目錄的 ACL。
IF 在批處理程序中執行有條件的處理過程。
LABEL 創建、更改或刪除磁盤的卷標。
MD 創建一個目錄。
MKDIR 創建一個目錄。
MKLINK 創建符號鏈接和硬鏈接
MODE 配置系統設備。
MORE 逐屏顯示輸出。
MOVE 將一個或多個文件從一個目錄移動到另一個目錄。
OPENFILES 顯示遠程用戶為了文件共享而打開的文件。
PATH 為可執行文件顯示或設置搜索路徑。
PAUSE 停止批處理文件的處理并顯示信息。
POPD 還原由 PUSHD 保存的當前目錄上一次的值。
PRINT 打印一個文本文件。
PROMPT 改變 Windows 命令提示。
PUSHD 保存當前目錄,然后對其進行更改。
RD 刪除目錄。
RECOVER 從損壞的磁盤中恢復可讀取的信息。
REM 記錄批處理文件或 CONFIG.SYS 中的注釋。
REN 重新命名文件。
RENAME 重新命名文件。
REPLACE 替換文件。
RMDIR 刪除目錄。
ROBOCOPY 復制文件和目錄樹的高級實用程序
SET 顯示、設置或刪除 Windows 環境變量。
SETLOCAL 開始用批文件改變環境的本地化。
SC 顯示或配置服務(后臺處理)。
SCHTASKS 安排命令和程序在一部計算機上按計劃運行。
SHIFT 調整批處理文件中可替換參數的位置。
SHUTDOWN 讓機器在本地或遠程正確關閉。
SORT 將輸入排序。
START 打開單獨視窗運行指定程序或命令。
SUBST 將驅動器號與路徑關聯。
SYSTEMINFO 顯示機器的具體的屬性和配置。
TASKLIST 顯示包括服務的所有當前運行的任務。
TASKKILL 終止正在運行的進程或應用程序。
TIME 顯示或設置系統時間。
TITLE 設置 CMD.EXE 會話的窗口標題。
TREE 以圖形顯示啟動器或路徑的目錄結構。
TYPE 顯示文本文件的內容。
VER 顯示 Windows 的版本。
VERIFY 告訴 Windows 驗證文件是否正確寫入磁盤。
VOL 顯示磁盤卷標和序列號。
XCOPY 復制文件和目錄樹。

>>> print("".join(os.popen("help").readlines()[1:-2]))
ASSOC 顯示或修改文件擴展名關聯。
ATTRIB 顯示或更改文件屬性。
BREAK 設置或清除擴展式 CTRL+C 檢查。
BCDEDIT 設置啟動數據庫中的屬性以控制啟動加載。
CACLS 顯示或修改文件的訪問控制列表(ACL)。
CALL 從另一個批處理程序調用這一個。
CD 顯示當前目錄的名稱或將其更改。
CHCP 顯示或設置活動代碼頁數。
CHDIR 顯示當前目錄的名稱或將其更改。
CHKDSK 檢查磁盤并顯示狀態報告。
CHKNTFS 顯示或修改啟動時間磁盤檢查。
CLS 清除屏幕。
CMD 打開另一個 Windows 命令解釋程序窗口。
COLOR 設置默認控制臺前景和背景顏色。
COMP 比較兩個或兩套文件的內容。
COMPACT 顯示或更改 NTFS 分區上文件的壓縮。
CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換
當前驅動器。
COPY 將至少一個文件復制到另一個位置。
DATE 顯示或設置日期。
DEL 刪除至少一個文件。
DIR 顯示一個目錄中的文件和子目錄。
DISKCOMP 比較兩個軟盤的內容。
DISKCOPY 將一個軟盤的內容復制到另一個軟盤。
DISKPART 顯示或配置磁盤分區屬性。
DOSKEY 編輯命令行、調用 Windows 命令并創建宏。
DRIVERQUERY 顯示當前設備驅動程序狀態和屬性。
ECHO 顯示消息,或將命令回顯打開或關上。
ENDLOCAL 結束批文件中環境更改的本地化。
ERASE 刪除一個或多個文件。
EXIT 退出 CMD.EXE 程序(命令解釋程序)。
FC 比較兩個文件或兩個文件集并顯示它們之間的不同。
FIND 在一個或多個文件中搜索一個文本字符串。
FINDSTR 在多個文件中搜索字符串。
FOR 為一套文件中的每個文件運行一個指定的命令。
FORMAT 格式化磁盤,以便跟 Windows 使用。
FSUTIL 顯示或配置文件系統的屬性。
FTYPE 顯示或修改用在文件擴展名關聯的文件類型。
GOTO 將 Windows 命令解釋程序指向批處理程序
中某個帶標簽的行。
GPRESULT 顯示機器或用戶的組策略信息。
GRAFTABL 啟用 Windows 在圖形模式顯示擴展字符集。
HELP 提供 Windows 命令的幫助信息。
ICACLS 顯示、修改、備份或還原文件和
目錄的 ACL。
IF 在批處理程序中執行有條件的處理過程。
LABEL 創建、更改或刪除磁盤的卷標。
MD 創建一個目錄。
MKDIR 創建一個目錄。
MKLINK 創建符號鏈接和硬鏈接
MODE 配置系統設備。
MORE 逐屏顯示輸出。
MOVE 將一個或多個文件從一個目錄移動到另一個目錄。
OPENFILES 顯示遠程用戶為了文件共享而打開的文件。
PATH 為可執行文件顯示或設置搜索路徑。
PAUSE 停止批處理文件的處理并顯示信息。
POPD 還原由 PUSHD 保存的當前目錄上一次的值。
PRINT 打印一個文本文件。
PROMPT 改變 Windows 命令提示。
PUSHD 保存當前目錄,然后對其進行更改。
RD 刪除目錄。
RECOVER 從損壞的磁盤中恢復可讀取的信息。
REM 記錄批處理文件或 CONFIG.SYS 中的注釋。
REN 重新命名文件。
RENAME 重新命名文件。
REPLACE 替換文件。
RMDIR 刪除目錄。
ROBOCOPY 復制文件和目錄樹的高級實用程序
SET 顯示、設置或刪除 Windows 環境變量。
SETLOCAL 開始用批文件改變環境的本地化。
SC 顯示或配置服務(后臺處理)。
SCHTASKS 安排命令和程序在一部計算機上按計劃運行。
SHIFT 調整批處理文件中可替換參數的位置。
SHUTDOWN 讓機器在本地或遠程正確關閉。
SORT 將輸入排序。
START 打開單獨視窗運行指定程序或命令。
SUBST 將驅動器號與路徑關聯。
SYSTEMINFO 顯示機器的具體的屬性和配置。
TASKLIST 顯示包括服務的所有當前運行的任務。
TASKKILL 終止正在運行的進程或應用程序。
TIME 顯示或設置系統時間。
TITLE 設置 CMD.EXE 會話的窗口標題。
TREE 以圖形顯示啟動器或路徑的目錄結構。
TYPE 顯示文本文件的內容。
VER 顯示 Windows 的版本。
VERIFY 告訴 Windows 驗證文件是否正確寫入磁盤。
VOL 顯示磁盤卷標和序列號。
XCOPY 復制文件和目錄樹。
WMIC 在交互命令外殼里顯示 WMI 信息。

回到正題,發個小秘技:

怎樣才能獲取dos命令顯示的內容而不是返回值?

這要請出os庫的另一個函數 popen() ,和fopen讀取文件差不多,也用readlines()讀取出信息的每一行;每一行都是一個以" "結尾的字符串元素,保存在同一個列表里,基本用法如下:

>>> import os
>>> os.popen("date /t")
<os._wrap_close object at 0x0000000002C82580>
>>> #一定要加上readlines()方法:
>>> os.popen("date /t").readlines()
["2021/10/19 周二 
"]
>>> os.popen("set path").readlines()
["PATH=C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;
C:WindowsSystem32WindowsPowerShellv1.0;
D:PythonScripts;
D:Python
", 
"PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
"]
>>> 

自定義幾個能抓取DOS命令返回信息的函數:

>>> import os
>>> def Date():
	command = "echo %date:~0,4%年%date:~5,2%月%date:~8,2%日"
	return os.popen(command).readlines()[0][:-1]
 
>>> Date()
"2021年10月19日"
>>> 
>>> def Weekday():
	command = "echo 星期%date:~-1%"
	return os.popen(command).readlines()[0][:-1]
 
>>> Weekday()
"星期二"
>>> 
>>> def Time():
	command = "echo %time%"
	return os.popen(command).readlines()[0][:8]
 
>>> Time()
"13:39:03"
>>> 
>>> import os
>>> def Dir(Drive):
	command = "dir " + Drive + ":"
	dirlist = os.popen(command).readlines()
	for d in dirlist:
		print(d, end="")
	print()
 
	
>>> Dir("C")
 驅動器 C 中的卷是 C_HD
 卷的序列號是 401B-F400
 
 C: 的目錄
 
2021/10/14  09:55            17,783 2021年xxxxxxxxx總結10.18.xlsx
2021/10/12  10:54    <DIR>          Program Files
2021/10/12  10:54    <DIR>          Program Files (x86)
2021/09/16  14:45    <DIR>          temp
2021/03/18  15:42    <DIR>          Users
2021/10/13  15:45    <DIR>          Windows
2021/10/11  11:11    <DIR>          XSBDownload
               1 個文件         17,783 字節
               6 個目錄 93,678,710,784 可用字節
 
>>> 
>>> def Path():
	command = "path"
	dirlist = os.popen(command).readlines()
	dirlist = dirlist[0][:-1].split(";")
	for d in dirlist:
		print(d)
	print()
 
	
>>> Path()
PATH=C:Windowssystem32
C:Windows
C:WindowsSystem32Wbem
C:WindowsSystem32WindowsPowerShellv1.0
D:PythonScripts
D:Python
 
>>> 

dos命令還有很多很多,其中有實用信息返回的都可以用os.system.popen().readlines()來獲取。

到此這篇關于python簡單幾步獲取各種DOS命令顯示的內容詳解流程的文章就介紹到這了,更多相關python DOS命令內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/boysoft2002/article/details/120888355

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 晓雪老师我要进你里面好爽 | 第一福利在线视频 | 亚洲 欧美 中文 日韩 另类 | 5x视频在线观看 | 青青草国产免费久久久91 | 九九热只有精品 | 69日本xxxxxxxxx98| 99热在线获取最新地址 | 韩国免费视频 | 婷婷综合在线 | 91色香sxmv最网页版新地址 | 欧美女孩videos | 欧美一区二区三区在线观看不卡 | 国产人妖ts在线视频网 | www四虎影院 | 亚洲免费色图 | 邪恶肉肉全彩色无遮盖 | 国产高清免费在线 | 免费日批视频 | 拍拍叫痛的无挡视频免费 | 亚洲激情偷拍 | 国内久久精品视频 | 国产在线乱子伦一区二区 | 海绵宝宝第二季全集免费观看 | 国内久久婷婷综合欲色啪 | 午夜理论片YY4399影院 | 91私密保健女子养生spa | 亚洲国产精品久久精品怡红院 | 精品一区二区三区在线播放 | 五月婷婷在线播放 | 女性全身裸露无遮挡 | 成人在线视频观看 | 狠狠香蕉| 亚洲免费色图 | 久久WWW免费人成一看片 | 手机看片1024国产 | 关晓彤一级做a爰片性色毛片 | 大片毛片女女女女女女女 | 99久久国语露脸精品国产 | 国产欧美日韩亚洲精品区2345 | 婷射吧 |