資料來源:7-Zip 批次處理


批次壓縮 (zip):
@echo off
set "a=%ProgramFiles%\7-Zip\7z.exe"
for %%a in (%*) do if exist "%%~a\" (
        "%a%" a -tzip "%%~a.zip" "%%~a\*"
        ) else (
        "%a%" a -tzip "%%~a.zip" "%%~a"
        )




批次封存 (7z):
@echo off
set "a=%ProgramFiles%\7-zip\7z.exe"
for %%a in (%*) do if exist "%%~a\" (
        "%a%" a -t7z "%%~a.7z" "%%~a\*" -mx0
        ) else (
        "%a%" a -t7z "%%~a.7z" "%%~a" -mx0
        )


批次解壓縮:
@echo off
set "a=%ProgramFiles%\7-Zip\7z.exe"
for %%a in (%*) do if exist "%%~a" (
        "%a%" x -oE:\Temp\* "%%~a"
        ) else (
        "%a%" x -oE:\Temp\* "%%~a"
        )


PS:
1. -mx0 (0/1/3/5/7/9, 壓縮率, 預設為5, 數字愈大壓縮率愈高, 0為不壓縮)
2. E:\Temp\ (解壓縮路徑, 請自行修改) 


Comment:
1. 複製下方程式碼並貼到記事本後另存為 *.bat 檔案
2. 將存檔的 *.bat 檔案放到 "C:\Documents and Settings\User\SendTo" (User=使用者帳號)
3. 批次壓縮/封存/解壓縮時請先選擇檔案, 然後按 "右鍵 > 傳送到 > *.bat" 即可


Reference:
EZsoft@PTT.cc


------------------------------------------------------------------------------------------------------------------------------------


資料來源:C# - 使用 7-z 壓縮與解壓縮


使用 7-z 壓縮與解壓縮這技術其實滿普遍的,但沒使用過確實不知道要如何下手,花了一點時間來看了一下,使用了「Process」的方式來完成這個主題,日後若有其他寫法,再一一的寫上來與各位分享,以下就來看看...

步驟一:專案建立後,佈一下畫面先


步驟二:開始實作壓縮與解壓縮

Code:

using System.IO;
using System.Diagnostics;


namespace Using_7Zip
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        //壓縮
        private void button1_Click(object sender, EventArgs e)
        {
            Process process = new Process();
            process.StartInfo.FileName = @"C:\Program Files\7-zip\7z.exe";
            process.StartInfo.Arguments = @"a -tzip E:\DannyChang.zip C:\張小呆文件夾\ABC.txt";
            process.Start();
        }


        //解壓縮
        private void button2_Click(object sender, EventArgs e)
        {
            Process process = new Process();
            process.StartInfo.FileName = @"C:\Program Files\7-zip\7z.exe";
            process.StartInfo.Arguments = @"e E:\DannyChang.zip -oE:\ -y";
            process.Start();
        }
    }
}

補充:
在解壓縮中有一段「e E:\DannyChang.zip -oE:\ -y」的語法,最後面有一個「-y」,這是表示,當在解壓縮的目的地,有一個相同的檔案存在時,同意覆蓋過去。

參考:
7z 所提供的說明文件(文件路徑:「C:\Program Files\7-Zip\7-zip.chm」)


arrow
arrow
    全站熱搜

    YOUNG21975 發表在 痞客邦 留言(0) 人氣()


    留言列表 留言列表

    發表留言