<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自動(dòng)化篇 | 這些自動(dòng)化場(chǎng)景,批處理腳本完全可以取代 Python!

          共 3422字,需瀏覽 7分鐘

           ·

          2020-08-04 01:54


          點(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)景

          下面聊聊幾個(gè)批處理比較實(shí)用的場(chǎng)景:
          1、對(duì)文件夾或桌面下的文件進(jìn)行分類(lèi),然后放置到不同的文件夾內(nèi),方便歸納管理
          @echo?off
          for?%%i?in?(*)?do?(md?%%~xi?
          move?*%%~xi?%%~xi)
          pause
          你沒(méi)看錯(cuò),只需要 4 行代碼
          其中,
          for 用于遍歷當(dāng)前文件夾,遍歷的結(jié)果用 do 分別去執(zhí)行后面的命令
          %%~xi?是截取?%%i 的擴(kuò)展名,使用 md 命令新建一個(gè)文件夾
          move 的作用是:將源文件移動(dòng)到新的文件夾中
          2、刪除當(dāng)前目錄(包含子目錄)下所有的 build 文件夾
          使用 Android Studio 編譯后,如果項(xiàng)目存在多個(gè) Module,可能會(huì)存在多個(gè) build?文件夾,可以使用下面的批處理腳本一鍵刪除
          @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
          腳本很簡(jiǎn)單,只需要打開(kāi)項(xiàng)目根目錄,利用「?for + do?」循環(huán)遍歷,根據(jù)匹配規(guī)則刪除文件即可
          其中:
          %~dp0:批處理文件當(dāng)前目錄
          /s:從所有子目錄下刪除文件
          /q:指定以「?安靜模式?執(zhí)行刪除操作,刪除不需要確認(rèn)
          相比 Python 腳本,批處理腳本代碼更簡(jiǎn)潔
          3、執(zhí)行 Python 腳本定時(shí)任務(wù)
          比如,我編寫(xiě)完一個(gè) Python 采集爬蟲(chóng),我想 5 分鐘執(zhí)行一次,這里可以使用?goto?命令
          @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)力!



          留言送書(shū)

          本周贈(zèng)書(shū):《?Python數(shù)據(jù)分析與可視化?
          PS:中獎(jiǎng)名單將于下周一在交流群/朋友圈同步公布



          推薦閱讀


          教你如何批量運(yùn)行自動(dòng)化腳本,高效工作!

          自動(dòng)化篇 | 朋友圈被折疊?會(huì)自動(dòng)化不存在的

          自動(dòng)化篇 | 再也不用擔(dān)心老人們用智能機(jī)了



          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91性爱在线播放 | 精品 熟女 国产 探花 AV | 亚洲AV无码成人精品区在线欢看 | 蘑菇tv官方网页在线观看 | 国产欧美日韩A V片 |