Window批處理自動打包公升級包

2021-07-27 00:03:38 字數 2287 閱讀 7691

有人大致說過這樣的話:如果有一件工作你每天都做,而且每天在這件事是耗時超過90s,那麼你就需要讓機器來做了。

我最近幾個月每天都會給別人打公升級包,從不同的地方獲取10個不同的檔案,這些破檔案來自不同的人。打包時需要把檔案放到不同的目錄下或者不同的壓縮包中。由於我們的裝置是qnx裝置,其壓縮包採用的是tar.gz的壓縮格式,而我安裝的壓縮軟體haozip不支援直接將檔案拖拽入.tar.gz包中,需要解壓、壓縮。每天耗時絕對超過10分鐘,於是就不得不搞一搞dos批處理,以前是懶的寫(可能內心覺得自己做不好),寫完才知道,原來批處理才是最好的偷懶啊。

以下是本次的主要知識點:

知識點:

獲取當前指令碼的路徑:

setcurrent_path=%cd%

列印變數值(引用變數值)

echo%current_path%

從控制帶獲取變數值

set/p variable=[promptstring]  

eg:set/p project_name=input project name, such as ***x:

if語句

(注意空格):

a.判斷字串是否為空

eg:if"%project_name%"=="" (

echo#####error:project name is null && goto error_delete_output

b.判斷檔案是否存在,連字元&&:

eg:ifnot exist  %mcu_directory% ( echo%mcu_directory% not exist ! && goto error_exit)

刪除資料夾(資料夾中亦有資料夾)

echoy|del %out_directory%\*.* && echo y|rd /s %out_directory%

判斷資料夾是否為空:

dir/a /b %current_path%\%mcu_directory%|findstr .* >nul||echo warning:input_mcudirectory is empty && goto error_exit

xcopy,

將指定目錄連檔案和目錄結構一起拷貝(

/e:複製目錄和子目錄,包括空的

;/y:

直接覆蓋):

xcopy/e /y .\%os_directory%\* .\%out_directory%\ && echo copy os packet over

copy

單個檔案(注意路徑中的斜線):

copy%mpu_directory%\base_packet\base.tar.gz%out_directory%\update\packets\base.tar.gz && echo copy base packetover

.tar.gz

檔案解壓(

haozip-

好壓)

rem 設定壓縮軟體路徑

setcompression_software=d:\program files\2345soft\haozip\

rem 切換到壓縮軟體路徑

cd/d %compression_software%

rem 將base.tar.gz解壓輸出到%current_path%\output\update\packets\

haozipcx %current_path%\output\update\packets\base.tar.gz-o%current_path%\output\update\packets\

.tar.gz

檔案的壓縮

rem 切換到壓縮軟體路徑

cd/d %compression_software%

rem 將%current_path%\output\update\packets\*所有內容打包為乙個tar包

haozipca -ttar %current_path%\output\update\packets\%project_name%.tar      %current_path%\output\update\packets\*

haozipca -tgzip %current_path%\output\update\packets\%project_name%.tar.gz  %current_path%\output\update\packets\%project_name%.tar

ps:最近越發覺得自己的水平接近於一位同齡同事五年前(此子大三)的水平:」不滯於物,草木竹石均可為劍。自此精修,漸進於無劍勝有劍之境「。當然自己現在還滯於各種物,但終覺其有跡可循,許是錯覺吧,哈哈。

嗯,短短100行的批處理,我居然斷斷續續用了三天,打臉!

cx Freez打包Python批處理

其實就幾句,但是方便,記得改為自己的python安裝目錄,預設為控制台程式,gui程式修改下注釋就好了。儲存為bat檔案,放到和py同一目錄,直接拖動py檔案到bat上即可。拖動py到此批處理打包.bat echo off title cx freeze打包python setlocal enabl...

BAT批處理打包專案

批處理複製資料夾以及指定檔案.bat 將指定專案打包到project對應目錄下面。這裡是用的c 專案方案 echo off echo 正在準備刪除.rd s q projects echo 正在生成目錄.md projects md projects pos md projects manage m...

window平台的bat批處理

批處理py檔案,驗證結果 上 問題連連 玩中興演算法比賽的時候需要驗證幾個測試用例,順便學了學bat批處理。當然python自己也可以玩的。python內執行另乙個py檔案 import os os.system python file name.py 但是被執行的檔案需要乙個輸入input,我不想...