1. 程式人生 > >dos.bat 批處理檔案的應用——批量壓縮

dos.bat 批處理檔案的應用——批量壓縮

我經常在電腦上看漫畫,自從用了MangaMeeya後,通常都把下載下來的漫畫壓縮為rar檔案。這樣有幾個好處,一是節省空間,二是在電腦中,對一個檔案的處理速度要快於多個檔案,複製貼上就是一個例子,很多人應該都是感受,明明所複製的檔案容量不大,只是數量很多,速度卻比容量大一些,數量少的時候要慢。刪除也是,我在重灌後刪除以前留下的matlab時,光是準備就要很久。而我那有幾十G的下載資料夾,卻兩三秒就刪乾淨了。

  下載漫畫一般除了個verycd上直接下載的壓縮檔案,就是使用MangaDowner,它下載下來的是圖片。以前我下載的漫畫不多,壓縮倒也不麻煩,前段時間把以前下載的漫畫和新下載的漫畫放在一些,發現未做成壓縮檔案的有很多。我通常用一個資料夾放一卷,現在有幾百個資料夾,我要把一個資料夾做一個壓縮檔案(太多圖片壓縮在一起也會影響MangaMeeya的讀取速度)。這要是一個個壓縮真得點滑鼠點到手抽筋了。比如說,我要把左圖的資料夾變成右圖的rar檔案。

批處理檔案的應用鈥斺斉墾顧批處理檔案的應用鈥斺斉墾顧

  於是我從網上找批量壓縮用的軟體,倒是找到了,不過試用了才發現是用來將一個檔案同時新增到多個壓縮檔案中用的,不是我需要的功能。繼續搜尋此類軟體但還是沒有找到。我就想到了用DOS命令列來批量壓縮。

  我只是感覺用DOS命令列可以,但不知道怎麼做。於是又搜尋教程,這網上倒是很多,學起來也很快,我很快便搞定了。現在總結一下方法。

  因為以後會經常使用,所以建立一個bat檔案。可以新建一個txt檔案,將副檔名改為bat就行。

  右鍵點選bat檔案,選編輯。輸入下列文字。

@echo off
FOR /D %%C IN (*) DO (
rar a %%C %%C
if errorlevel 0 rmdir /s %%C
)

  儲存,將這個檔案和要壓縮的資料夾們放於同一目錄,執行即可。(注意!前提是將winrar安裝資料夾加入環境變數。如果不會新增環境變數,就將這句話裡的rar改為path/rar.exe,其中path是winrar的安裝路徑,如C:/Program Files/WinRAR/rar.exe a %%C %%C,請務必保證這個命令存在,否則即使沒壓縮也會刪掉資料夾,我懶得寫一個更安全的bat檔案了.....)

  對以上命令的解釋:

  第一行的@echo off 沒有太大作用,只是讓下面的命令執行時不在視窗上顯示。

  第二行的FOR就是重點了。FOR大家都知道,和C語言等程式語言一樣,是迴圈。/D %%C IN (*)表示遍歷所有的資料夾(不包括子資料夾)。如果沒有/D則是遍歷所有的檔案(不包括資料夾)。%%C裡的C是個迴圈變數名,就像C語言裡常用的i一樣,它可以是任意字母,但只能是一個字母,兩個%不可少。IN (*)裡的*表示所有,是萬用字元,這裡可以打檔名,比如我們要壓縮以烏龍開頭的資料夾,就可以寫成IN (烏龍*)。DO後括號裡的語句就是迴圈體了。

  rar是一個命令,我們可以在winrar的安裝資料夾裡找到rar.exe程式。如果不會新增環境變數,就將這名話裡的rar改為path/rar.exe,其中path是winrar的安裝路徑。rar命令(因為是rar.exe,稱為程式也行)後的a是引數,表示建立rar檔案。後面跟了兩個%%C,第一個是建立的rar檔案的名字,第二個是被壓縮的檔案的名字。這一行的意思就是將一個資料夾壓縮為與它同名的rar檔案。

  事實上這時候我要的功能已經實現了,但壓縮完了以後又有一個問題,就是原來的圖片還是要刪掉的,不然留著佔不少地方。雖然在windows下刪除多個資料夾很方便,但能省事豈不更好。於是就有了下一句。if errorlevel 0是判斷上一個命令(在這裡就是rar.exe)的執行結果是否是0,我從rar的幫助中查到,執行結果返回0則表示壓縮成功。rmdir是刪除資料夾的命令,/s表示除目錄本身外,還將刪除指定目錄下的所有子目錄和檔案。用於刪除目錄樹。如果再加上/q,就表示不提示,沒有/q的話,每次刪除都會詢問是否確定刪除。這一行的意思就是如果壓縮成功,就刪除被壓縮的資料夾。

  下面是執行時候的截圖,執行完這個視窗自己就關閉了。

  通過這次學習批處理命令,我深深感覺到它的方便之處。目前windows的缺點便在於不能隨意定製命令或功能。批處理在一定程度上解決了這個問題。

相關推薦

dos.bat 處理檔案應用——批量壓縮

我經常在電腦上看漫畫,自從用了MangaMeeya後,通常都把下載下來的漫畫壓縮為rar檔案。這樣有幾個好處,一是節省空間,二是在電腦中,對一個檔案的處理速度要快於多個檔案,複製貼上就是一個例子,很多人應該都是感受,明明所複製的檔案容量不大,只是數量很多,速度卻比容量大一些,

dos/bat處理教程——第四部分:完整案例

echo 目錄 發布 判斷 案例 不能 goto 信息 iis dos/bat批處理教程——第四部分:完整案例 以上就是批處理的一些用法。現在我們把這些用法結合起來詳細的分析一下目前網上發布的一些批處理,看看他們是怎麽運作的。這裏我將列舉三個例子來詳細分析,為了保持程序

Java基礎--其他--bat處理檔案

批處理檔案(bat)     bat處理檔案就是指一次性可以執行多個命令的檔案。     僅對於圖形化介面的程式起作用\  編寫:     新建txt,副檔名改成bat即可,右鍵編輯,寫!     

BAT處理 檔案重新命名

1.bat重新命名檔案 ren 111.txt 222.doc 解釋:將111.txt 命名為222.doc 2.迴圈重新命名一個資料夾下的所有結尾為xls的檔案,前加上A for /f %%i in ('dir /b *.txt') do (ren %%i A

windows下自動更改IP的小工具(bat處理檔案

每次上線,都要先上灰度環境再上到正式環境。在上到灰度環境時,訪問灰度環境通過自動獲取IP和更改指定dns來實現。具體如何實現,大家可自行百度。 新建一個文字文件,將其後綴改為bat,開啟該檔案,拷貝一下程式碼: @echo off :start echo ============請輸

BAT處理檔案,指令碼時間值%time:~0,2%%time:~3,2%%time:~6,2%的用法。

如下的各個操作的意義如下:%time:~0,2%  表示從左向右指標向右偏0位,然後從指標偏移到的位置開始提取2位字元,結果是小時欄位數值%time:~3,2%  表示指標從左向右偏移3位,然後從偏移處開始提取2位字元,結果是分鐘欄位數值%time:~6,2%  表示指標從左向右

C# 執行bat處理檔案

</pre><pre name="code" class="csharp"></pre><pre name="code" class="csharp">        private void RunBat(string ba

在 Windows server 2008 下計劃任務無法正常執行bat處理檔案

接上篇,批處理檔案肯定是沒有問題,加入到計劃任務中,發現有能正常備份,但是沒有辦法拷貝到網路對映盤。將bat檔案輸出到檔案,本想看看log的,結果居然沒有正常執行。 google了一下,發現很多網友都有類似的問題,但沒人給出答案。 很幸運的找到一篇微軟官方論壇上的網友討

myeclipse匯出可執行jar包、bat處理檔案雙擊執行jar包

一、myeclipse匯出可執行jar包: 右鍵專案->Export->選擇runnable jar file,下一步-> 點選finish完成。 說明: 1、Extract required libraries into generated JAR 選

使用bat處理檔案啟動.exe程式

1.新建一個.txt記事本檔案 2.編輯內容如下: start “” “D:\Tencent\QQ.exe” start D:\Tencent\QQ.exe 路徑中有空格的按第一排寫,加上引號(注意除了路徑要引起來外,前面還有一對引號); 路徑沒有空格的按第二排

如何在一個bat處理檔案中呼叫另一個bat處理檔案

我們有兩個批處理檔案outter和批處理檔案inner,其內容如下: outter.bat [plain] view plain copy  print? echo "start to call inner bat here"   inner.bat     

Java執行bat處理檔案,並關閉cmd視窗

package com.baobaotao.test; import java.io.IOException; public class CmdMain { public static void

Windows下通過bat處理檔案和vbs指令碼實現守護程序

set _task=ISMClient.exeset _svr=C:\ISMClient\ISMClient.exeset _des=start1.bat :checkstartSET status=1 (TASKLIST|FIND /I "%_task%"||SET status=0) 2>nul 1

BAT 處理指令碼教程 BAT 處理指令碼教程 DOS的重定向命令及在安全方面的應用

BAT 批處理指令碼教程 第一章 批處理基礎第一節 常用批處理內部命令簡介批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。瞭解了大

【轉】用jsmin批量壓縮JS的處理檔案

在網頁中動態載入的 JavaScript 對於頁面顯示的速度影響甚多,不得不注意! 尤其是很多人習慣把 JavaScript include 寫在 <head> 區塊中,這樣一來最大的問題就是 Browser 必須要等到 JavaScript 全部讀完後才會開始顯

處理檔案(bat檔案)註冊dll批量註冊dll

下面這個是註冊system32目錄下的所有dll 複製程式碼程式碼如下: for %%i in (%windir%\system32\*.dll) do regsvr32.exe /s %%i  如果想自定義目錄可以改成這樣的 複製程式碼程式碼如下: For %%i in (你要註冊的DLL檔案目錄

Windows處理檔案(.bat檔案和.cmd檔案)介紹以及簡單使用

首先說一下cmd檔案和bat檔案的區別,從檔案描述中的區別是,cmd檔案叫做:Windows命令指令碼,bat檔案叫:批處理檔案,兩者都可以使用任意一款文字編輯器進行建立、編輯和修改,只是在cmd中支援的命令要多於bat。 批處理檔案是一種沒有什麼固定格式的檔案,他可以處理一條或者多條命令,

使用處理檔案批量操作Oracle資料庫

最近,因為業務需要,需要做個批處理檔案,雙擊後,能夠遠端執行一些SQL語句。適合沒有任何資料庫基礎的人使用。查了相關文件,做了個簡單的例子,一共有3個檔案,insert.bat,insert.sql ,log1.txt. 其中insert.bat 這個檔案是批處理,雙擊會執行,或者

bat處理執行python 的幾種方式 ———— 處理, python打包成 exe檔案

第一種方式: @echo off C: cd C:\Users\ldl\Desktop start python test100.py start python 1.py start python 1.py 10 start python 1.py 100 exit 第二種方

bat處理開啟檔案路徑或者程式

PEM開啟程式 @echo off start /min "" "D:\Program Files\Xshell\Xshell.exe" PEM設定延時時間 timeout /t 10 start /min "" "D:\Program Files\SecureCRT\SecureCRT