batch-file cab makecab

batch file - makecab-crea un archivo cab de todos los archivos en una carpeta



batch-file (2)

Tengo un montón de archivos en un directorio. Intenté seguir a makecab pero no incluye todos los archivos de una carpeta en el archivo cab.

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

Lo siguiente funciona pero el archivo cab solo tiene el archivo de manifiesto. makecab manifest.xml test.cab


/ d switch no se puede usar para archivos:

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

Más información

EDITAR aquí se puede encontrar una secuencia de comandos que conserva toda la estructura de directorios


Finalmente, he creado un script que realmente puede hacer esto correctamente (con powershell)

No usa WSPBuilder ya que a menudo me subcontratan y es inconveniente descargar nuevo software / archivos adicionales. Esto funciona 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 }

por favor avíseme si estoy haciendo algo mal y / o podría ser mejor.

para referencia:

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