激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

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

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

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

2022-02-16 00:29Hann Yang Python

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

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

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

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

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

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

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

代碼運(yùn)行結(jié)束后,t 就接受了echo命令的返回值,DOS命令執(zhí)行成功一般都返回 0 。

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

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

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

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

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

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

題外話:DOS中用兩個%把環(huán)境變量名括起來表示一個環(huán)境變量, 可以用dos命令 set 來顯示和設(shè)置這些系統(tǒng)環(huán)境變量。除了用“set path”外,path 命令可以單獨(dú)顯示 %PATH% 變量。

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

各個時期的Dos版本的內(nèi)部命令有增有減個數(shù)不定,另外還有很多的外部命令可用。

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

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:>

列出當(dāng)前DOS版本的所有內(nèi)部命令:

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

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

回到正題,發(fā)個小秘技:

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

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

>>> 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命令返回信息的函數(shù):

>>> 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")
 驅(qū)動器 C 中的卷是 C_HD
 卷的序列號是 401B-F400
 
 C: 的目錄
 
2021/10/14  09:55            17,783 2021年xxxxxxxxx總結(jié)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 字節(jié)
               6 個目錄 93,678,710,784 可用字節(jié)
 
>>> 
>>> 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命令還有很多很多,其中有實(shí)用信息返回的都可以用os.system.popen().readlines()來獲取。

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲欧美国产高清va在线播放 | 成人一级片毛片 | 黑色丝袜美美女被躁视频 | 欧美一级黄带 | 久久91精品国产91久久yfo | 欧美高清视频一区 | 精国产品一区二区三区 | 狠狠操天天射 | 在线观看免费毛片视频 | 亚洲欧美日韩综合一区 | 中文字幕在线第二页 | 日本精品久久久一区二区三区 | 99re热视频这里只精品 | 亚洲成人在线免费观看 | 极品一级片 | 91久久久久久久 | av电影免费播放 | 依人在线视频 | 免费观看高清视频网站 | 亚洲第一精品在线 | 91麻豆精品国产91久久久无需广告 | 3级毛片 | 国产做爰| 毛片免费看的 | 欧美a在线观看 | 亚洲一区二区在线 | 一级毛片一区 | 91精品国产91久久久 | 久久久久中精品中文字幕19 | 免费观看在线 | 91久久久久久久久久久久久 | 91www成人久久 | 色婷婷久久久 | 国产精品视频yy9299一区 | 国产一区视频在线免费观看 | 九色中文字幕 | 国内精品久久久久久久星辰影视 | 在线播放黄色片 | 欧美一级做a | 成人国产精品久久 | 新久草视频|