1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        自動化篇 | 這些自動化場景,批處理腳本完全可以取代 Python!

        共 3463字,需瀏覽 7分鐘

         ·

        2020-08-23 17:16


        點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進行關(guān)注

        回復(fù)“書籍”即可獲贈Python從入門到進階共10本電子書

        落魄江湖載酒行, 楚腰纖細掌中輕。

        1. 前言

        提到自動化解決方案,相信大部分人會想到用 Python 語言,只需要根據(jù)功能場景,編寫 Python 腳本即可

        相反,PC 端的?Batch 批處理?似乎快被忘記了,很多人對它嗤之以鼻,認為這么古老的腳本語言貌似沒什么用,Python 似乎可以取而代之

        相比 Python 腳本,Batch 批處理腳本在某些場景下,使用更簡潔、方便、高效,即寫即用,不需要依賴 Python 環(huán)境,并且可以完全擺脫打包等繁瑣步驟

        2. 批處理基礎(chǔ)

        新建批處理腳本很簡單,只需要新建一個文本文件,然后修改編碼方式為:ANSI 編碼,接著編寫腳本邏輯代碼,最后保存文件以?.bat?結(jié)尾即可

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

        其中:

        @echo?off? 代表在本行開始關(guān)閉回顯,不顯示正在執(zhí)行的批處理命令及執(zhí)行結(jié)果,一般放在批處理文件第一行

        echo 日志參數(shù):用于在控制臺輸出日志,偏于理解腳本執(zhí)行邏輯

        ::/rem 注釋內(nèi)容:注釋內(nèi)命令

        title/color:設(shè)置窗體標題和背景顏色

        cd:切換目錄

        md:創(chuàng)建目錄

        dir:顯示文件夾的內(nèi)容

        rd:刪除一個目錄

        del 刪除模式?文件:刪除文件。通過配置刪除模式,可以刪除任意文件,包含隱藏、只讀、系統(tǒng)文件

        copy:拷貝文件

        pause:暫停命令,一般放在批處理文件最后一行

        goto:跳轉(zhuǎn)命令,一般和「 : 任務(wù)名稱?搭配使用,執(zhí)行一個循環(huán)任務(wù),實例見第 3 節(jié)

        for:循環(huán)命令,和 Python 中的 for 語法類似

        if:判斷命令

        set:設(shè)置一個變量

        start:調(diào)用外部程序的命令

        3. 實用場景

        下面聊聊幾個批處理比較實用的場景:
        1、對文件夾或桌面下的文件進行分類,然后放置到不同的文件夾內(nèi),方便歸納管理
        @echo?off
        for?%%i?in?(*)?do?(md?%%~xi?
        move?*%%~xi?%%~xi)
        pause
        你沒看錯,只需要 4 行代碼
        其中,
        for 用于遍歷當前文件夾,遍歷的結(jié)果用 do 分別去執(zhí)行后面的命令
        %%~xi?是截取?%%i 的擴展名,使用 md 命令新建一個文件夾
        move 的作用是:將源文件移動到新的文件夾中
        2、刪除當前目錄(包含子目錄)下所有的 build 文件夾
        使用 Android Studio 編譯后,如果項目存在多個 Module,可能會存在多個 build?文件夾,可以使用下面的批處理腳本一鍵刪除
        @echo?off
        ::?打開到當前目錄下
        cd?/d?"%~dp0"

        echo?開始刪除

        ::?循環(huán)刪除
        for?/r?/D?%%i?in?(*build*)?do?rd?/s?/q?"%%i"

        echo?刪除完成

        pause
        腳本很簡單,只需要打開項目根目錄,利用「?for + do?」循環(huán)遍歷,根據(jù)匹配規(guī)則刪除文件即可
        其中:
        %~dp0:批處理文件當前目錄
        /s:從所有子目錄下刪除文件
        /q:指定以「?安靜模式?執(zhí)行刪除操作,刪除不需要確認
        相比 Python 腳本,批處理腳本代碼更簡潔
        3、執(zhí)行 Python 腳本定時任務(wù)
        比如,我編寫完一個 Python 采集爬蟲,我想 5 分鐘執(zhí)行一次,這里可以使用?goto?命令
        @echo?off??

        title?循環(huán)運行Python代碼

        ::?5分鐘執(zhí)行一次,單位為s
        set?INTERVAL=300

        ::?提前執(zhí)行一次,把執(zhí)行時間打印出來
        echo?開始執(zhí)行?-?%time%
        python?C:/test.py?

        ::?使用timeout進行倒計時
        timeout?%INTERVAL%

        ::?新建一個任務(wù)
        :Task??
        echo?開始執(zhí)行?-?%time%
        python?C:/test.py?
        timeout?%INTERVAL%

        ::?使用goto命令,開始跳轉(zhuǎn)到上面的任務(wù),開始執(zhí)行
        goto?Task??

        4、Git?交代碼

        正常使用 git 命令行提交代碼( 不使用 IDE ),需要使用 git?add .、git commit -m?提交日志、git pull、git push 四條命令

        使用批處理腳本,只需要雙擊一下,輸入提交日志就完事了

        具體代碼如下:

        @echo?off
        title?提交代碼
        echo?提交代碼,簡化操作

        ::?狀態(tài)
        git?status

        :: set:等待輸入,賦值給變量msg
        set /p commit_msg=代碼提交注釋:

        ::?提交代碼的 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)無用文件開始
        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)垃圾完成?。。?br>echo.?&?pause

        4. 最后

        上面幾個簡單的小功能都是使用批處理腳本編寫的,實際上,Python 與批處理各有各的優(yōu)勢。

        Python 語法更加優(yōu)雅易懂,大量的依賴庫可以直接使用;批處理在 PC 端某些特點的場景,無論是編寫還是使用,都有它特定的優(yōu)勢。

        當然,可以使用轉(zhuǎn)換工具將批處理腳本轉(zhuǎn)為 EXE 可執(zhí)行程序,供 Python 去調(diào)用,完成一些復(fù)雜的自動化任務(wù)。

        -------------------?End?-------------------

        往期精彩文章推薦:

        歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

        想加入Python學(xué)習群請在后臺回復(fù)【入群

        萬水千山總是情,點個【在看】行不行

        /今日留言主題/

        隨便說一兩句吧~~

        瀏覽 72
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            91精品国产91久久久久久软件优势 | 一二三四精品 | 亚洲无码高清在线视频 | 色婷婷五月一区二区三区 | 免费A级毛片啪啪毛片啪啪 | 国产精品午夜未成人免费观看 | 亚洲AV秘 成人久久无码海归 | 国产三级黄色视频 | 超碰人人爱 | 国产又大又粗又长视频 |