自動(dòng)化篇 | 這些自動(dòng)化場(chǎng)景,批處理腳本完全可以取代 Python!
點(diǎn)擊上方“AirPython”,選擇“加為星標(biāo)”
第一時(shí)間關(guān)注 Python 技術(shù)干貨!

1. 前言
提到自動(dòng)化解決方案,相信大部分人會(huì)想到用 Python 語(yǔ)言,只需要根據(jù)功能場(chǎng)景,編寫(xiě) Python 腳本即可
相反,PC 端的?Batch 批處理?似乎快被忘記了,很多人對(duì)它嗤之以鼻,認(rèn)為這么古老的腳本語(yǔ)言貌似沒(méi)什么用,Python 似乎可以取而代之
相比 Python 腳本,Batch 批處理腳本在某些場(chǎng)景下,使用更簡(jiǎn)潔、方便、高效,即寫(xiě)即用,不需要依賴(lài) Python 環(huán)境,并且可以完全擺脫打包等繁瑣步驟
2. 批處理基礎(chǔ)
新建批處理腳本很簡(jiǎn)單,只需要新建一個(gè)文本文件,然后修改編碼方式為:ANSI 編碼,接著編寫(xiě)腳本邏輯代碼,最后保存文件以?.bat?結(jié)尾即可

Batch 常用命令包含:echo、::/rem、title/color、cd/md/dir、rd/del/copy、pause、goto、for、if、set、start等
其中:
@echo?off? 代表在本行開(kāi)始關(guān)閉回顯,不顯示正在執(zhí)行的批處理命令及執(zhí)行結(jié)果,一般放在批處理文件第一行
echo 日志參數(shù):用于在控制臺(tái)輸出日志,偏于理解腳本執(zhí)行邏輯
::/rem 注釋內(nèi)容:注釋內(nèi)命令
title/color:設(shè)置窗體標(biāo)題和背景顏色
cd:切換目錄
md:創(chuàng)建目錄
dir:顯示文件夾的內(nèi)容
rd:刪除一個(gè)目錄
del 刪除模式?文件:刪除文件。通過(guò)配置刪除模式,可以刪除任意文件,包含隱藏、只讀、系統(tǒng)文件
copy:拷貝文件
pause:暫停命令,一般放在批處理文件最后一行
goto:跳轉(zhuǎn)命令,一般和「 : 任務(wù)名稱(chēng)?」搭配使用,執(zhí)行一個(gè)循環(huán)任務(wù),實(shí)例見(jiàn)第 3 節(jié)
for:循環(huán)命令,和 Python 中的 for 語(yǔ)法類(lèi)似
if:判斷命令
set:設(shè)置一個(gè)變量
start:調(diào)用外部程序的命令
3. 實(shí)用場(chǎng)景
@echo?off
for?%%i?in?(*)?do?(md?%%~xi?
move?*%%~xi?%%~xi)
pause
@echo?off
::?打開(kāi)到當(dāng)前目錄下
cd?/d?"%~dp0"
echo?開(kāi)始刪除
::?循環(huán)刪除
for?/r?/D?%%i?in?(*build*)?do?rd?/s?/q?"%%i"
echo?刪除完成
pause@echo?off??
title?循環(huán)運(yùn)行Python代碼
::?5分鐘執(zhí)行一次,單位為s
set?INTERVAL=300
::?提前執(zhí)行一次,把執(zhí)行時(shí)間打印出來(lái)
echo?開(kāi)始執(zhí)行?-?%time%
python?C:/test.py?
::?使用timeout進(jìn)行倒計(jì)時(shí)
timeout?%INTERVAL%
::?新建一個(gè)任務(wù)
:Task??
echo?開(kāi)始執(zhí)行?-?%time%
python?C:/test.py?
timeout?%INTERVAL%
::?使用goto命令,開(kāi)始跳轉(zhuǎn)到上面的任務(wù),開(kāi)始執(zhí)行
goto?Task??4、Git?提交代碼
正常使用 git 命令行提交代碼( 不使用 IDE ),需要使用 git?add .、git commit -m?提交日志、git pull、git push 四條命令
使用批處理腳本,只需要雙擊一下,輸入提交日志就完事了
具體代碼如下:
@echo?off
title?提交代碼
echo?提交代碼,簡(jiǎn)化操作
::?狀態(tài)
git?status
:: set:等待輸入,賦值給變量msg
set /p commit_msg=代碼提交注釋?zhuān)?br>
::?提交代碼的 4 條命令
git?add?.
git?commit?-m?%commit_msg%
git?pull
git?push
echo?提交成功
pause?
5、清除系統(tǒng)垃圾文件
指定刪除模式、待刪除的路徑,調(diào)用?del 命令去刪除即可
@echo?off
::?配置
title?Alic?Feng?batTool?for?Clean
color?03
mode?con?cols=42?lines=20
echo?executes?cleaning,Please?waiting...
::程序刪除系統(tǒng)無(wú)用文件開(kāi)始
del?/f?/s?/q??%systemdrive%\*.tmp?1>nul?2>nul
del?/f?/s?/q??%systemdrive%\*._mp?1>nul?2>nul
del?/f?/s?/q??%systemdrive%\*.log?1>nul?2>nul
del?/f?/s?/q??%systemdrive%\*.gid?1>nul?2>nul
del?/f?/s?/q??%systemdrive%\*.chk?1>nul?2>nul
del?/f?/s?/q??%systemdrive%\*.old?1>nul?2>nul
del?/f?/s?/q??%systemdrive%\recycled\*.*?1>nul?2>nul
del?/f?/s?/q??%windir%\*.bak?1>nul?2>nul
del?/f?/s?/q??%windir%\prefetch\*.*?1>nul?2>nul
del?/f?/s?/q?%windir%\temp\*.*?1>nul?2>nul
del?/f?/q??%userprofile%\cookies\*.*?1>nul?2>nul
del?/f?/q??%userprofile%\recent\*.*?1>nul?2>nul
del?/f?/s?/q??"%userprofile%\Local?Settings\Temporary?Internet?Files\*.*"?1>nul?2>nul
del?/f?/s?/q??"%userprofile%\Local?Settings\Temp\*.*"?1>nul?2>nul
del?/f?/s?/q??"%userprofile%\recent\*.*"?1>nul?2>nul
::刪除系統(tǒng)垃圾文件結(jié)束
echo 清除系統(tǒng)垃圾完成?。?!
echo.?&?pause
4. 最后
上面幾個(gè)簡(jiǎn)單的小功能都是使用批處理腳本編寫(xiě)的,實(shí)際上,Python 與批處理各有各的優(yōu)勢(shì)。
Python 語(yǔ)法更加優(yōu)雅易懂,大量的依賴(lài)庫(kù)可以直接使用;批處理在 PC 端某些特點(diǎn)的場(chǎng)景,無(wú)論是編寫(xiě)還是使用,都有它特定的優(yōu)勢(shì)
當(dāng)然,可以使用轉(zhuǎn)換工具將批處理腳本轉(zhuǎn)為 EXE 可執(zhí)行程序,供 Python 去調(diào)用,完成一些復(fù)雜的自動(dòng)化任務(wù)
我已經(jīng)將文中全部源碼及批處理轉(zhuǎn)換工具上傳到后臺(tái),關(guān)注公眾號(hào)后回復(fù)「?bat?」即可獲得全部源碼
如果你覺(jué)得文章還不錯(cuò),請(qǐng)大家?點(diǎn)贊、分享、留言下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!
