Datei per CMD Konsolen Befehl - in Windows mitgeliefertes Standard ZIP packen - ohne extra Tools(ZIP, RAR, 7-ZIP)
Hallo, wie die Überschrift es schon sagt, ich möchte mit Boardmitteln also ohne ein Tool / Programm extra installieren zu müssen, per Konsole eine Datei oder Verzeichnis in das ZIP Archiv packen.
Es ist gleichbedeutend wie: Mausrechtsklick auf Datei oder ein Ordner / Senden an... / ZIP-Komprimierter Ordner
Wie lautet der Befehl in der klassischen Windows CMD Konsole?
Vielen Dank
Es ist gleichbedeutend wie: Mausrechtsklick auf Datei oder ein Ordner / Senden an... / ZIP-Komprimierter Ordner
Wie lautet der Befehl in der klassischen Windows CMD Konsole?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 367177
Url: https://administrator.de/contentid/367177
Ausgedruckt am: 15.11.2024 um 17:11 Uhr
7 Kommentare
Neuester Kommentar
Hi,
PowerShell kann das.
How to create a zip archive with PowerShell?
Dort ist unter 222 der simple Code für eine entsprechende Funktion.
PowerShell 5 kann es sogar von Haus aus.
Compress-Archive
E.
Und Google kann das auch ...
PowerShell kann das.
How to create a zip archive with PowerShell?
Dort ist unter 222 der simple Code für eine entsprechende Funktion.
PowerShell 5 kann es sogar von Haus aus.
Compress-Archive
E.
Und Google kann das auch ...
Servus.
Die Frage ist schon so alt wie Windows selbst . Daran sieht man mal wieder wie sich Microsoft die letzten Jahre um die Community gekümmert hat, die kümmert sich dann halt meist selber.
Wenn du alles in die Batch packen willst geht auch das
Beispiel um alle *.txt Dateien im Ordner D:\Quelle in das Zipfile unter D:\myfile.zip zu packen.
(mind. .NET 4.5)
Alternativ geht ganze geht auch mit VBS in einer Batch (Shell.Application Namespace Objekt) ohne extra Utilities. Bei Bedarf liefere ich auch den Code nach wenn gewünscht.
Mit reiner Batch(cmd) hat Windows selbst keine Commandline-Utilities.
Das was Windows selbst noch an Kompressionstools mitbringt ist ein Selfextracting EXE Tool namens iexpress.exe und auch noch das Tool compact, aber die erzeugen natürlich kein Standard-ZIP.
Grüße Uwe
Die Frage ist schon so alt wie Windows selbst . Daran sieht man mal wieder wie sich Microsoft die letzten Jahre um die Community gekümmert hat, die kümmert sich dann halt meist selber.
Wenn du alles in die Batch packen willst geht auch das
Beispiel um alle *.txt Dateien im Ordner D:\Quelle in das Zipfile unter D:\myfile.zip zu packen.
(mind. .NET 4.5)
@echo off
powershell -Executionpolicy ByPass -Command "Add-Type -AssemblyName System.IO.Compression;Add-Type -AssemblyName System.IO.Compression.FileSystem;$zip = [System.IO.Compression.ZipFile]::Open('D:\myfile.zip',[System.IO.Compression.ZipArchiveMode]::Create);gci 'D:\quelle\*.txt' | %%{[void][System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip,$_.FullName,$_.Name)};$zip.Dispose()"
Mit reiner Batch(cmd) hat Windows selbst keine Commandline-Utilities.
Das was Windows selbst noch an Kompressionstools mitbringt ist ein Selfextracting EXE Tool namens iexpress.exe und auch noch das Tool compact, aber die erzeugen natürlich kein Standard-ZIP.
Grüße Uwe
Dabei wollte ich dies so gestalten das keine Tools erforderlich sind, falls ich es nochmals wo anders auf ein nicht mir gehörenden Drittrechner brauchen sollte.
Wenn schon eine Batch mitgeliefert wird dann ist doch eine kleine exe auch kein Problem mehr.Oder man schreibt sich gleich eine Anwendung (c# /AutoIt) die alle nötige enthält.
VBS geht auch ohne zusätzl. Tools
Sub AddZip (zipFile, sFolder)
With CreateObject("Scripting.FileSystemObject")
zipFile = .GetAbsolutePathName(zipFile)
sFolder = .GetAbsolutePathName(sFolder)
With .CreateTextFile(zipFile, True)
.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, chr(0))
End With
End With
With CreateObject("Shell.Application")
.NameSpace(zipFile).CopyHere .NameSpace(sFolder).Items
Do Until .NameSpace(zipFile).Items.Count = .NameSpace(sFolder).Items.Count
WScript.Sleep 500
Loop
End With
End Sub
@echo off &setlocal
set "tmpfile=%temp%\pack.vbs"
>"%tmpfile%" (
echo With CreateObject^("Scripting.FileSystemObject"^)
echo zipFile ^= .GetAbsolutePathName^(wscript.Arguments^(0^)^)
echo sFolder ^= .GetAbsolutePathName^(wscript.Arguments^(1^)^)
echo sFile ^= .GetFileName^(wscript.Arguments^(1^)^)
echo With .CreateTextFile^(zipFile, True^)
echo .Write Chr^(80^) ^& Chr^(75^) ^& Chr^(5^) ^& Chr^(6^) ^& String^(18, chr^(0^)^)
echo End With
echo End With
echo With CreateObject^("Shell.Application"^)
echo .NameSpace^(zipFile^).CopyHere .NameSpace^(sFolder^).ParseName^(sFile^)
echo Do Until .NameSpace^(zipFile^).Items.Count ^= 1
echo WScript.Sleep 500
echo Loop
echo End With
)
wscript //NOLOGO "%tmpfile%" "D:\myfile.zip" "D:\Ordner\datei.sql"
Das dies so Aufwendig ist, war mir nicht bewusst.
?? Ich seh da keinen Aufwand . Windows halt ... die weiterhin WinXP im Einsatz haben
Schlach mich tot. Ich fahr jetzt schnell mal mit dem Dampfschiff ans andere Ufer .