¿Cómo se puede comprimir o descomprimir el script utilizando SÓLO las capacidades integradas de Windows?
En Windows puedes comprimir algunos archivos
clic derecho → Enviar a → Carpeta comprimida (zipped)
Y descomprima haciendo doble clic en el .zip
archivo y extraiga los archivos.
¿Existe alguna manera de aplicar esas capacidades desde un script (archivo .bat) sin la necesidad de instalar ningún software de terceros ?
Para ampliar la solución PowerShell de Steven Penny, puede incorporarla en un archivo por lotes llamando powershell.exe
así:
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar'); }"
Como dijo Ivan Shilo, esto no funcionará con PowerShell 2, requiere PowerShell 3 o superior y .NET Framework 4.
Si tiene Java instalado, puede comprimirlo en un archivo ZIP usando el jar
comando:
jar -cMf targetArchive.zip sourceDirectory
c = Crea un nuevo archivo de almacenamiento.
M = Especifica que no se debe agregar un archivo de manifiesto al archivo.
f = Indica el nombre del archivo de destino.
PowerShell 5.0
Desde Microsoft.PowerShell.Archive
puedes usar:
Compress-Archive
Expand-Archive
P.ej:
Crear
result.zip
desde toda laTest
carpeta:Compress-Archive -Path C:\Test -DestinationPath C:\result
Extraiga el contenido de
result.zip
en la carpeta especificadaTest
:Expand-Archive -Path result.zip -DestinationPath C:\Test
En 2013, eso no era posible. Microsoft no proporcionó ningún ejecutable para esto.
Consulte este enlace para conocer alguna forma de VBS de hacer esto. https://superuser.com/questions/201371/create-zip-folder-from-the-command-line-windows
A partir de Windows 8, .NET Framework 4.5 se instala de forma predeterminada, con System.IO.Compression.ZipArchive y PowerShell disponibles, se pueden escribir scripts para lograr esto, consulte https://stackoverflow.com/a/26843122/71312
No es exactamente un ZIP, pero la única forma de comprimir un archivo usando las herramientas de Windows es:
makecab <source> <dest>.cab
Para descomprimir:
expand <source>.cab <dest>
Ejemplo avanzado (de ss64.com):
Create a self extracting archive containing movie.mov:
C:\> makecab movie.mov "temp.cab"
C:\> copy /b "%windir%\system32\extrac32.exe"+"temp.cab" "movie.exe"
C:\> del /q /f "temp.cab"
Más información: makecab , ampliar , usos avanzados de makecab