Подтвердить что ты не робот

Makecab - создать файл кабины из всех файлов в папке

У меня есть куча файлов в каталоге. Я попытался выполнить makecab, но он не включает все файлы в папку в файл кабины.

makecab /d "C:\Users\crtorres\Documents\- SouthPacific Project 2014\- Projects\Sales Doc Center\New Region" test.cab

Следующие работы, но файл кабины имеет только файл манифеста. makecab manifest.xml test.cab

4b9b3361

Ответ 1

Наконец-то я создал script, который может сделать это правильно (с powershell)

Он не использует WSPBuilder, так как меня часто прерывают, и неудобно загружать новые программные/дополнительные файлы. Это работает OOTB.

function compress-directory([string]$dir, [string]$output)
{
    $ddf = ".OPTION EXPLICIT
.Set CabinetNameTemplate=$output
.Set DiskDirectory1=.
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
"
    $dirfullname = (get-item $dir).fullname
    $ddfpath = ($env:TEMP+"\temp.ddf")
    $ddf += (ls -recurse $dir | ? {!$_.psiscontainer}|select -expand fullname|%{'"'+$_+'" "'+$_.SubString($dirfullname.length+1)+'"'}) -join "`r`n"
    $ddf
    $ddf | Out-File -encoding UTF8 $ddfpath
    makecab /F $ddfpath
    rm $ddfpath
    rm setup.inf
    rm setup.rpt
}

пожалуйста, дайте мне знать, если я делаю что-то неправильно и/или может быть лучше.

для справки:

http://www.pseale.com/blog/StrongOpinionSayNoToMAKECABEXE.aspx

Ответ 2

/d не может использоваться для файлов:

@echo off
dir /s /b /a-d >files.txt
makecab /d "CabinetName1=test.cab" /f files.txt
del /q /f files.txt

Дополнительная информация

EDIT здесь можно найти script, который сохраняет всю структуру каталогов