我看到有一個很好的方式,在這個崗位使用makecab來壓縮整個文件夾
使用makecab到壓縮文件夾。上述腳本的一個問題是無法處理長文件名(長擴展名)。例如,如果我有一個文件名爲somelongfilename.extension的文件,在壓縮和解壓縮後,文件名將是SOMELO〜1.EXT。任何人都可以指導我解決問題嗎?
我看到有一個很好的方式,在這個崗位使用makecab來壓縮整個文件夾
使用makecab到壓縮文件夾。上述腳本的一個問題是無法處理長文件名(長擴展名)。例如,如果我有一個文件名爲somelongfilename.extension的文件,在壓縮和解壓縮後,文件名將是SOMELO〜1.EXT。任何人都可以指導我解決問題嗎?
我最近做了類似的事情。但是我使用了一個名爲DDFGenerator的外部工具。它是免費且小巧的,它可以正確處理長文件名。
要使用makecab.exe壓縮結構化文件夾和文件,必須使用DDF文件。我沒有使用您引用的答案中提到的批處理腳本,而是使用DDFGenerator實現相同的目標。
說,你要的文件夾 「拉鍊」 在位於C:\ MyFolder文件\ MyData的,使用此命令生成的一個名爲C 「solution.ddf」 一個DDF文件:\ MyFolder文件:
DDFGenerator "C:\MyFolder"
請注意,DDFGenerator.exe會迭代文件「under」您提供的文件夾,因此要壓縮C:\ MyFolder \ MyData,您應該將「C:\ MyFolder」傳遞給它並確保MyData是唯一的項目C:\ MyFolder文件。
在生成了solution.ddf之後,需要進行小小的調整。只要打開 「solution.ddf」 與你喜歡的任何文本編輯器進行這些更改:
替換這些2號線(在開始的時候):
.Set DiskDirectoryTemplate=CDROM
.Set CompressionType=MSZIP
爲:
.Set CabinetName1={YourCabName}.cab
.Set CompressionType=LZX
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
(將{YourCabName}替換爲適合您需要的任何內容) 這些更改確保不會分裂並具有更好的壓縮比。
然後,運行在C makecab命令:\ MyFolder文件建立駕駛室:
makecab.exe /F solution.ddf
的{} YourCabName會的.cab在C位於:\ MyFolder文件\ disk1的後進行。只要拿走它並刪除已經生成的其他文件。
要 「解壓縮」 駕駛室在當前路徑,使用命令:
expand {YourCabName}.cab /F:* .
PS。我是一個在stackoverflow上的新手,無法在上述帖子中添加評論。有人能幫我做到嗎? – NickOSU