數碼中文坊

 取回密碼
 我要註冊
檢視: 9073|回覆: 5

[分享] 關於BinPatch版本問題?

[複製連結]
發表於 2007-9-26 13:00:03 | 顯示全部樓層 |閱讀模式

馬上註冊,結交更多好友,享用更多功能,讓你輕鬆瀏覽論壇。

你需要 登入 才可以下載或檢視,沒有帳號?我要註冊

x

關於BinPatch版本問題?

 

說起來慚愧,晚輩雖然具初階中文化經驗,

但是經常卡在 Patch製作出來的 補丁檔太大了,

經過研究多時,總算發現 BinPatch 原來有分版本,

之前都呆呆的用 BinPatch 2.1g R2,

這玩意兒不但停止開發了,

也買不到註冊版本,

以至於無法加入文字說明,

 

後來嘗試使用 BinPatch 3.0n,

雖然是使用 MS-DOS 指令,

但卻能夠加入文字說明,

雖然沒有 GUI 介面,

不過 Patch 檔做的很小,

至少比晚輩常用的 WinPatch 1.2.9 產生的 Patch 小一半以上.....

 

因此,重點來了?

由於 BinPatch 已經停止開發了,

而晚輩僅找的到以下最新版本:

Windows模式:BinPatch 2.1g R2 →無法購買註冊。

MS-DOS模式:BinPatch 3.0n

 

不知以上版本是否為目前最新版呢?

 

望前輩指教~^_^~ 謝謝您!

 

 

另外,由於 BinPatch 的 GenPatch ,

在下達 c:\>genpatch/? 時,

指令參考少的可憐。

不知有沒有完整的指令參數呢?

 

以上請前輩們指教,謝謝您!^_^

發表於 2007-9-26 13:51:03 | 顯示全部樓層

BinPatch 本來就可以產生 Windows 介面,只要加上一個參數就行,底下是網友 Jonson 對 BinPatch 所寫的簡單教學:

 

大家好,我是 Jonson

由於上次公佈的說明,有部份遺漏,故此次補上完整的說明

這一次 BinPatch 說明新增加以下部份指令:
=============================================================================
History Patch (又名為 Multiversion Patch) 多重 Patch 說明,以及 -l  -m  -q  -s  -v -z
等指令介紹。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
BinPatch 3.0g 簡易說明   Written by Johnson Wu   E-mail:[email protected]
                                                               Date: 1999/4/2
作者網站: http://www.kayhayen.com
=============================================================================

BinPatch 是一套由德國人 Kay Hayen 所研發的一套檔案 patch 程式,目的是讓使用者
根據兩個新舊版本檔案之間的差異來產生一個小體積的檔案 (簡稱為 patch 檔), 而其
他人只需要利用這個小檔案即可將舊版的檔案轉換為新的版本!

聽起來蠻不錯的,但是也許有人會說:這有何稀奇! 隨便上網抓就有一卡車的軟體能夠
做 patch 檔…

的確,幾個比較有名的軟體例如:RTPatch, WinPatch, MDIFF...等都有相當數量的支持
者,不過既然是介紹 BinPatch,那得替 BinPatch 提出有力的證明才行啊。

因此我作了一份表格讓您比較一下:

  ┌─────┬───────┬───────┬─────┬──────┐
  │          │   BinPatch   │   RTPatch    │ WinPatch │   MDIFF    │
  ├─────┼───────┼───────┼─────┼──────┤
  │使用簡易性│     容易     │     麻煩     │   適中   │    容易    │
  ├─────┼───────┼───────┼─────┼──────┤
  │適用的作業│DOS,Win31/95/ │DOS,Win31/95/ │ Win95/98 │DOS,Win95/98│
  │平台      │98/NT,OS/2,   │98/NT,OS/2,   │          │            │
  │          │Linux         │Linux 及其它..│          │            │
  ├─────┼───────┼───────┼─────┼──────┤
  │自動搜尋檔│     可以     │     可以     │   不能   │    不能    │
  │案        │              │              │          │            │
  ├─────┼───────┼───────┼─────┼──────┤
  │自動搜尋登│              │              │          │            │
  │錄檔      │     可以     │     可以     │   不能   │    不能    │
  ├─────┼───────┼───────┼─────┼──────┤
  │命令列或是│              │              │          │            │
  │GUI 介面  │     均有     │     均有     │ 僅有 GUI │ 只有命令列 │
  ├─────┼───────┼───────┼─────┼──────┤
  │產生的檔案│              │              │          │            │
  │大小      │      小      │     很大     │   很大   │    中等    │
  ├─────┼───────┼───────┼─────┼──────┤
  │具備有多重│              │              │          │            │
  │patch 功能│      能      │      能      │   不能   │    不能    │
  └─────┴───────┴───────┴─────┴──────┘

參考上面的表格之後,您是否對 BinPatch 燃起了一點信心呢?

底下我們示範一組基本的用法:

            GenPatch  c:\old  c:\new  patch
            ---+----  --+---  --+---  --+--
               |        |       |       |
               |        |       |       要產生的 patch 檔名
               |        |       新的檔案
               |        原始檔案
               BinPatch 主程式

以上命令將會比較 c:\old 以及 c:\new 兩個目錄下所有的檔案 (包括子目錄),並且按
照比較的結果產生一個名稱為 patch.utp 的檔案,請注意:副檔名 .utp 是程式自動加
上去的,所以不需要自行添加。

讀到這裡,您可能會感到奇怪為何產生的檔案並非是執行檔(.exe)呢? 因為上面的例子
只是簡單的用法, .utp 格式的 patch 檔因為不能做自動修改檔案的動作,所以必須要
套用 BinPatch 的另一個附加程式 DoPatch.exe,其使用的方法如下:

DoPatch test.utp

請注意:使用 DoPatch 時,使用者必須要指定一個完整的檔名,因此 .utp 也要自行加
        入才可以。

那怎麼做才能產生我們要的自動修改檔 (SelF-Applying, 以下簡稱為 SFA) 呢?

介紹您認識第一個參數之前有件非常非常重要的事要告訴您, 在 BinPatch 中所有的參
數都有大小寫的區別,例如: -a 和 -A 是不同的參數,請務必記得喲!

Ok, "-s" 是您一定要記得的參數,它的功能就是產生 SFA 檔。 底下是範例:

GenPatch c:\old c:\new patch -s

由上面的例子我們可以得到 patch.exe 檔。

不過,還有一個問題,原始的檔案被 patch.exe 修改完之後,這些舊檔案會躲到那裡去
呢? 若改檔順利的話,原始檔案一定會存放在該軟體所在的位置中名稱為 "backup" 的
目錄下。例如,在 c:\test 修改檔案,則原始檔案最後將存放在 c:\test\backup 下。
"backup" 這個目錄是 patch 檔案之後 SFA 自己產生的,您可別笨笨的先去給他造一個
喔! :-)

另一個有用的功能稱為 "History Patch" 又稱為 "多重 Patch"。何謂 "多重 Patch"?
我們時常看過許多的軟體在推出新的版本時, 該公司會在網站上提供升級檔讓使用者下
載,例如:升級檔的使用說明會陳述到… "本程式僅供 1.1, 1.2 及 1.5 版的使用者升
級到 2.0 版…",很顯然,這個 patch 檔並不只針對單一的版本升級,而是3個版本的
用戶都適用。

BinPatch 也提供這種強大的功能! 怎麼做呢? 方法很簡單,我們以上面提到的情況來
示範 "多重 Patch" 的用法:

GenPatch c:\v11 c:\v12 c:\v15 c:\v20 upgrade -s
         ------ ------ ------ ------
           1     2     3     4

第 1、2、3 組目錄存放各個不同版本的檔案, 最後一組(4)放新版的檔案,這樣所
產生的 patch 檔 (upgrade.exe) 就能讓擁有三種不同版本的使用者升級到 2.0 版了!

看到這裡的讀者先恭喜您,已經畢業啦! 基本上,只有 -s 這個參數也已經很夠用了,
因此我將這整個說明劃分為兩部份, 從以下開始後半段是其它參數使用介紹,若是有空
您也可以參考一下。
───────────────────────────────────────

BinPatch 3.0g 參數使用說明
==========================

參數名稱    原英文名稱    用途說明
-------- ---------------- ---------------------------------------------------
  -a           All        讓 BinPatch 處理所有的檔案。 加上 -a 可以一併處理隱
                          藏檔。
-------- ---------------- ---------------------------------------------------
  -b          Backup      指定原始檔案所要存放的目錄。 若不加上此參數則預設的
                          目錄為 "Backup"。

                          範例: -b="Backup Directory"
                                -b=OldFiles
-------- ---------------- ---------------------------------------------------
  -c         Comment      將 patch 檔加上檔頭註解文字。 在 patch 檔執行時會先
                          秀出來讓使用者觀看。

                          範例: -c="註解的上限為 10 x 76 個字元\n可以換行。"
                                [email protected]

                          註 1: "\n" 是特殊控制符號,可讓註解自動換行。
                          註 2: "@comment.txt" 指定 comment.txt 檔的內容做為
                                註解。
-------- ---------------- ---------------------------------------------------
  -d          Delete      在 patch 檔案時,刪除指定的檔案。

                          範例: -d="a secret file.doc"
                                -d=security.sys
                                -d=file*.hlp
-------- ---------------- ---------------------------------------------------
  -j            無        BinPatch 內建有壓縮系統, 所以製造出來的 patch 檔實
                          際上都已經壓縮過了, 如果您為了某些理由不願意壓縮,
                          則可以使用 -j 取消壓縮的功能。
-------- ---------------- ---------------------------------------------------
  -k           Key        這是 BinPatch 非常重要的功能, 此功能又稱為:登錄檔
                          搜尋(registry searching)。

                          當我們將製作好的 patch 檔丟給其他人用時,必須要考慮
                          到使用者在使用上的便利性, 如果能讓使用者不必煩惱要
                          在那一個目錄下使用, 只要一執行 patch 檔就能為我們完
                          成所有的事情, 那不是很方便嗎?

                          通常軟體安裝之後, 都會在登錄檔裡頭留下檔案存放的路
                          徑。

                          在此我們假設以登錄編輯器找到一個 key 為:
                          "HKEY_CURRENT_USER\Software\My Program"

                          假設其 key 的名稱 (key name) 為: "InstDir"
                          假設其 key 的值 (key value) 為:
                          "C:\Program Files\My Application"

                          則使用以下命令可讓 patch 檔執行時擷取該 key 的值:
                          -k="HKEY_CURRENT_USER\Software\My Program\InstDir"

                          則結果會讓 BinPatch 自動切換到:
                          "C:\Program Files\My Program" 目錄下修改檔案。

                          又假設在 HKEY_CURRENT_USER\Software\My Program"
                          這個 key 之中含有一個預設值 (default)。則可用下列命
                          令讓 BinPatch 自動擷取此值:
                          -k="HKEY_CURRENT_USER\Software\My Program\"

                          眼尖的人會發現多了一個 "\" 符號, 而加上 "\" 意思就
                          是讀取預設值(default)。
                          (註:當registry中有空白時, 需加上"")
-------- ---------------- ---------------------------------------------------
  -l         Log file     將 BinPatch 產生 patch 檔的過程存到記錄檔(log)中。
                          假設 patch 檔的名稱為 test.exe 則 log 檔將命名為:
                          test.log。

                          範例: -l=txt
                                -l=htm
                                -l

                          註 1: "txt" 是指建立純文字型態的 log 檔。
                          註 2: "htm" 表示所建立的 log 檔為 html 格式。
                          註 3: 不指定 log 型態則預設為 txt 檔。
-------- ---------------- ---------------------------------------------------
  -m          Memory      限制 BinPatch 建立 patch 時所需要使用的記憶體。

                          範例: -m=6
                                -m=99

                          註 1: -m=n,n 的值範圍可由 5-100,值越大則 BinPatch
                                使用的記憶體越少, 但相對的也會減慢建立 patch
                                檔的速度。
                          註 2: 預設值為 5。
-------- ---------------- ---------------------------------------------------
  -q           Quiet      建立 patch 檔的過程中僅量不顯示相關的訊息在螢幕上。
-------- ---------------- ---------------------------------------------------
  -s      Self-applying   建立 SFA patch 檔(副檔名為 .exe)。

                          範例: -s=gui32
                                -s=gui16
                                -s

                          註 1: gui32 表示建立 Windows 95/98/NT 具有視窗操作
                                介面的 SFA。
                          註 2: gui16 為建立 Windows 3.1 視窗介面的 SFA。

                          註 3: 只有 -s 表示建立 DOS 或 Windows 95/98 DOS 型
                                態的 SFA。

                          ※ 目前並不建議您使用 gui32 或 gui16 模式, 因其視
                             窗中所顯示的字型還不能調整或設定 (醜醜的),作者
                             已經承諾將改進這個缺點。
-------- ---------------- ---------------------------------------------------
  -t           Time       在建立 patch 檔的過程中, BinPatch 會將所有被處理的
                          新檔案的日期記錄在稍後製造的 patch 檔中,而之後當使
                          用者執行 patch 時, BinPatch 則使用這些記錄一併把被
                          修改的檔案日期變更到與當初製造者的檔案日期一致。 -t
                          參數是用來改變 BinPatch 對檔案日期處理的方式。

                          範例: -t=n    (n = now)
                                -t=l    (l = latest)

                          註 1: "n" 表示直接以目前的日期/時間作為修改後的新檔
                                案日期。
                          註 2: "l" 以最接近現在日期的檔案為準, 其它檔案的日
                                期全部與該檔案一致。
-------- ---------------- ---------------------------------------------------
  -u     Unimportant File 顧名思意,就是指定哪些檔案是不重要的。 也就是說修改
                          檔案時, 若該檔案不存在、版本不符合或者只是一個小小
                          的文字檔時會導致 BinPatch 跳過這些檔案不予處理。

                          註:在正常情況下 BinPatch 遇到條件不符的檔案時會停止
                             修改的動作, 並且中斷程式的執行,所以使用 -u=*.*
                             或 -u 可以避免這種情形發生。

                          範例: -u="unimportant files.doc"
                                -u=program.exe
                                -u=*.txt
                                -u=*.* 與 -u 意思相同
-------- ---------------- ---------------------------------------------------
  -v          Version     顯示 BinPatch 的版本相關資訊。
-------- ---------------- ---------------------------------------------------
  -z            無        將所建立的 patch 檔以指定的壓縮程式予以壓縮。
                          -z 參數目前支援下列的壓縮程式:

                          InfoZip、LHA、RAR、GZip、PKZip、ARJ 和 JAR。

                          不過使用時請另加上 -j 參數來取消 BinPatch 內建的壓縮
                          功能, 否則造成重覆壓縮反而會使得 patch 檔更大,還有
                          不管是指定那一種壓縮程式,使用前必須先確定您的電腦中
                          有這個壓縮程式的存在,而且要放在系統能抓得到的路徑下
                          才有作用。

                          範例: -z=RAR
                                -z=ARJ
───────────────────────────────────────

 


 

發表於 2007-9-26 13:55:47 | 顯示全部樓層
在早期還使用撥接上網的年代,patch 檔的大小一直被相當斤斤計較。不過現在寬頻一個比一個大,其實已不必去追求小的 patch 檔。實用且具有智能判斷的 patch 應該才是要努力的方向吧!以上是個人意見。
 樓主| 發表於 2007-9-26 22:52:30 | 顯示全部樓層

哦?

請問前輩您是否有好的建議工具呢?

 

因為 WinPatch 製作 Patch檔實在是太慢了~>"<~

 

現在只好試著改 BinPatch 3.0n 的中文化了,

不過卻碰上不少ASCII的問題~(好像拼錯單字)

 

加上沒學過 VB、C、C++,

臨陣磨槍…

只好硬著頭皮向您購買中文化套書了....

(因為也沒得挑了嘛~~@@,網路上的教學好多都看不懂…,只卡在 ASCII 的頭大問題)

發表於 2007-9-26 23:15:14 | 顯示全部樓層

使用封裝軟體然後搭配 BinPatch 來製作中文化程式是不錯的方法。更好的是單使用封裝軟體就好。封裝軟體眾多,如 InstallShield、Wise、Inno setup、Nsis 等。我們用的是較簡單但功能也滿強的 Setup Factory 7。

 

像本站的中文化不僅可以自動取得目標程式的安裝位置,並能預先檢查目標程式的版本然後告知使用者版本不符...判斷目標程式是否使用中,然後自動將它關閉,關閉不了的話就通知使用者將它關閉....中文化失敗的話自動帶往本站相關的網頁中取得相關的訊息等等...當然還有更多的功能可以設計。

 樓主| 發表於 2007-9-27 09:48:49 | 顯示全部樓層

原文由 MarchFun 於 2007-9-26 11:15 PM 發表 使用封裝軟體然後搭配 BinPatch 來製作中文化程式是不錯的方法。更好的是單使用封裝軟體就好。封裝軟體眾多,如 InstallShield、Wise、Inno setup、Nsis 等。我們用的是較簡單但功能也滿強的 Setup Factory 7。   ...

 

哦~~~

Setup Factory 7 這玩意曾經聽過,但是沒有實際使用過,

另外,晚輩已訂購大師您的中文化全套書+cd了,

也許裏面有些需要的技術吧?

 

目前是卡在以下幾種大問題。

★ ASCII 補位,字型改變,字型大小改變,按鈕大小改變。

★ 中文化產品以 Install 方式安裝,並且搭配序號安裝。(就像大師您做的 VM 系列)

★ 翻譯資料庫的建立(目前是用 .TXT 方式備份翻譯字庫,免得又得重翻了。)

 

想當初得用 exespoce + 一堆有的沒的來中文化,

現在工具比之前好用多了,現在用 Sisulizer 還蠻方便的,

減少不少時間.....

 

軟體中文化方面,已經蠻久沒在做了,

目前大多數著重於 vBulletin 插件的中文化(PHP),

只是因為現在剛好要用到某些軟體,

所以又重拾中文化決心(為了自已),

正巧 ASCII 問題困擾了晚輩許久。

 

相關文章在這裏:

http://forum.cpatch.org/viewthread.php?tid=8495&extra=page%3D1

你需要登入後才可以回覆 登入 | 我要註冊

本版積分規則

Archiver|禁閉室|手機版|數碼中文坊

GMT+8, 2024-4-20 04:19 AM

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回覆 返回頂端 返回清單