這些自動化場景,批處理腳本徹底能夠取代 Python!

提到自動化解決方案,相信大部分人會想到用 Python 語言,只須要根據功能場景,編寫 Python 腳本便可python

做者:星安果來源:AirPython|2020-08-04 10:03 收藏 分享git

  1. 前言
    提到自動化解決方案,相信大部分人會想到用 Python 語言,只須要根據功能場景,編寫 Python 腳本便可。
    這些自動化場景,批處理腳本徹底能夠取代 Python!

相反,PC 端的 Batch 批處理 彷佛快被忘記了,不少人對它嗤之以鼻,認爲這麼古老的腳本語言貌似沒什麼用,Python 彷佛能夠取而代之。數組

相比 Python 腳本,Batch 批處理腳本在某些場景下,使用更簡潔、方便、高效,即寫即用,不須要依賴 Python 環境,而且能夠徹底擺脫打包等繁瑣步驟。cookie

  1. 批處理
    基礎新建批處理腳本很簡單,只須要新建一個文本文件,而後修改編碼方式爲:ANSI 編碼,接着編寫腳本邏輯代碼,最後保存文件以 .bat 結尾便可。
    這些自動化場景,批處理腳本徹底能夠取代 Python!

Batch 經常使用命令包含:echo、::/rem、title/color、cd/md/dir、rd/del/copy、pause、goto、for、if、set、start等。ide

其中:工具

@echo off 表明在本行開始關閉回顯,不顯示正在執行的批處理命令及執行結果,通常放在批處理文件第一行。fetch

echo 日誌參數:用於在控制檯輸出日誌,偏於理解腳本執行邏輯ui

::/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 的做用是:將源文件移動到新的文件夾中。

二、刪除當前目錄(包含子目錄)下全部的 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 腳本,批處理腳本代碼更簡潔。

三、執行 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

四、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

五、清除系統垃圾文件

指定刪除模式、待刪除的路徑,調用 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
  1. 最後
    上面幾個簡單的小功能都是使用批處理腳本編寫的,實際上,Python 與批處理各有各的優點。

Python 語法更加優雅易懂,大量的依賴庫能夠直接使用;批處理在 PC 端某些特色的場景,不管是編寫仍是使用,都有它特定的優點。

固然,可使用轉換工具將批處理腳本轉爲 EXE 可執行程序,供 Python 去調用,完成一些複雜的自動化任務。

【編輯推薦】

  1. 數據科學家必須知道的前十大Python庫
  2. 老闆讓我從幾百個Excel中查找數據,我用Python一分鐘搞定!
  3. 5 個 JS 數組技巧可提升你的開發技能
  4. 初學者如何更好自學Python代碼?
  5. 99% 開發者都不知道的 JS 冷知識系列(一)【責任編輯:華軒 TEL:(010)68476606】
相關文章
相關標籤/搜索