這些自動化場景,批處理指令碼完全可以取代 Python
一. 寫在前面
提到自動化解決方案,相信大部分人會想到用 Python 語言,只需要根據功能場景,編寫 Python 指令碼即可
相反,PC 端的 Batch 批處理 似乎快被忘記了,很多人對它嗤之以鼻,認為這麼古老的指令碼語言貌似沒什麼用,Python 似乎可以取而代之
相比 Python 指令碼,Batch 批處理指令碼在某些場景下,使用更簡潔、方便、高效,即寫即用,不需要依賴 Python 環境,並且可以完全擺脫打包等繁瑣步驟
二. 批處理基礎
新建批處理指令碼很簡單,只需要新建一個文字檔案,然後修改編碼方式為:ANSI 編碼,接著編寫指令碼邏輯程式碼,最後儲存檔案以 .bat 結尾即可
Batch 常用命令包含:echo、::/rem、title/color、cd/md/dir、rd/del/copy、pause、goto、for、if、set、start等
其中:
@echo off 代表在本行開始關閉回顯,不顯示正在執行的批處理命令及執行結果,一般放在批處理檔案第一行
echo 日誌引數:用於在控制檯輸出日誌,偏於理解指令碼執行邏輯
::/rem 註釋內容:註釋內命令
title/color:設定窗體標題和背景顏色
cd:切換目錄
md:建立目錄
dir:顯示資料夾的內容
rd:刪除一個目錄
del 刪除模式 檔案:刪除檔案。透過配置刪除模式,可以刪除任意檔案,包含隱藏、只讀、系統檔案
copy:複製檔案
pause:暫停命令,一般放在批處理檔案最後一行
goto:跳轉命令,一般和「 : 任務名稱 」搭配使用,執行一個迴圈任務,例項見第 3 節
for:迴圈命令,和 Python 中的 for 語法類似
if:判斷命令
set:設定一個變數
start:呼叫外部程式的命令
三. 實用場景
下面聊聊幾個批處理比較實用的場景:
1、對資料夾或桌面下的檔案進行分類,然後放置到不同的資料夾內,方便歸納管理
@echo off
for
%%i in (*) do (md %%~xi
move *
%%~xi %%~xi)
pause
你沒看錯,只需要 4 行程式碼
其中,
for 用於遍歷當前資料夾,遍歷的結果用 do 分別去執行後面的命令
%%~xi 是擷取 %%i 的副檔名,使用 md 命令新建一個資料夾
move 的作用是:將原始檔移動到新的資料夾中
2、刪除當前目錄(包含子目錄)下所有的 build 資料夾
使用 Android Studio 編譯後,如果專案存在多個 Module,可能會存在多個 build 資料夾,可以使用下面的批處理指令碼一鍵刪除
@
echo off
:: 開啟到當前目錄下
cd /d
"%~dp0"
echo 開始刪除
:: 迴圈刪除
for /r /D %%i in (*build*)
do rd /s /q
"%%i"
echo 刪除完成
pause
指令碼很簡單,只需要開啟專案根目錄,利用「 for + do 」迴圈遍歷,根據匹配規則刪除檔案即可
其中:
%~dp0:批處理檔案當前目錄
/s:從所有子目錄下刪除檔案
/q:指定以「 安靜模式 」執行刪除操作,刪除不需要確認
相比 Python 指令碼,批處理指令碼程式碼更簡潔
3、執行 Python 指令碼定時任務
比如,我編寫完一個 Python 採集爬蟲,我想 5 分鐘執行一次,這裡可以使用 goto 命令
@
echo off
title 迴圈執行Python程式碼
:: 5分鐘執行一次,單位為s
set INTERVAL=
300
:: 提前執行一次,把執行時間列印出來
echo 開始執行 - %time%
python C:/test.py
:: 使用timeout進行倒數計時
timeout %INTERVAL%
:: 新建一個任務
:Task
echo 開始執行 - %time%
python C:/test.py
timeout %INTERVAL%
:: 使用
goto命令,開始跳轉到上面的任務,開始執行
goto Task
4、Git 提交程式碼
正常使用 git 命令列提交程式碼( 不使用 IDE ),需要使用 git add .、git commit -m 提交日誌、git pull、git push 四條命令
使用批處理指令碼,只需要雙擊一下,輸入提交日誌就完事了
具體程式碼如下:
@
echo off
title 提交程式碼
echo 提交程式碼,簡化操作
:: 狀態
git status
:: set:等待輸入,賦值給變數msg
set /p commit_msg=程式碼提交註釋:
:: 提交程式碼的
4 條命令
git add .
git commit -m %commit_msg%
git pull
git push
echo 提交成功
pause
5、清除系統垃圾檔案
指定刪除模式、待刪除的路徑,呼叫 del 命令去刪除即可
@echo
off
::
配置
title
Alic
Feng
batTool
for
Clean
color
03
mode
con
cols=42
lines=20
echo
executes
cleaning,Please
waiting...
::程式刪除系統無用檔案開始
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
::刪除系統垃圾檔案結束
echo
清除系統垃圾完成!!!
echo.
&
pause
四. 最後
上面幾個簡單的小功能都是使用批處理指令碼編寫的,實際上,Python 與批處理各有各的優勢。
Python 語法更加優雅易懂,大量的依賴庫可以直接使用;批處理在 PC 端某些特點的場景,無論是編寫還是使用,都有它特定的優勢。
當然,可以使用轉換工具將批處理指令碼轉為 EXE 可執行程式,供 Python 去呼叫,完成一些複雜的自動化任務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2714592/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- bat批處理常用指令碼BAT指令碼
- Hammerspoon for Mac自動化批處理軟體Mac
- Python自動化處理Excel資料PythonExcel
- windows 批處理備份目錄指令碼Windows指令碼
- Python web自動化爬蟲-selenium/處理驗證碼/XpathPythonWeb爬蟲
- redis自學(47)批處理最佳化Redis
- specjvm自動化指令碼JVM指令碼
- 使用 Nim 和 Python 自動化處理登入和驗證碼Python
- 批處理指令碼:遞迴移動資料夾內所有檔案指令碼遞迴
- 自動化瓦力多渠道打包python指令碼Python指令碼
- 如何在 Python 中自動化處理 Excel 表格?PythonExcel
- python指令碼處理偽靜態注入Python指令碼
- Python——自動簽到指令碼Python指令碼
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- 用python寫一個自動化盲註指令碼Python指令碼
- Dockerfile---指令碼自動化Docker指令碼
- vue自動化部署指令碼Vue指令碼
- 3、python指令碼處理偽靜態注入Python指令碼
- 使用 Vyper 和 Python 進行自動化登入並處理驗證碼Python
- 自動化測試中的驗證碼處理
- 【Python自動化Excel】pandas處理Excel的“分分合合”PythonExcel
- mydumper自動化安裝指令碼指令碼
- 小夥用Python對Excel資料進行自動處理指令碼,追到了人事小姐姐PythonExcel指令碼
- 寫個批處理指令碼來幫忙幹活---遍歷資料夾&字串處理指令碼字串
- Python批處理:檔案操作Python
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- lua自動化指令碼關於文字讀寫和特殊不可見字元轉換的處理指令碼字元
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- HR自動化審批流程有哪些好處?
- 自動化測試時對驗證碼的處理
- Python 指令碼自動視窗截圖Python指令碼
- python實現自動搶課指令碼Python指令碼
- 開機自動執行python指令碼Python指令碼
- 10個Python指令碼來自動化你的日常任務Python指令碼
- 【Python自動化Excel】pandas處理Excel資料的基本流程PythonExcel
- 【TensorFlow重大升級】自動將Python程式碼轉為TFGraph,大幅簡化動態圖處理!Python
- metersphere 介面自動化中sql場景使用SQL
- 使用Fortran實現當前驗證碼自動化處理