Ich möchte eine BAT-Datei erstellen, mit der ich eine Datei zippen oder entpacken kann. Für das Zippen einer Datei habe ich diese Frage gefunden: https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili/112094
Die dort gegebenen Antworten sind großartig und funktionieren bei mir, aber ich konnte keine Informationen darüber finden, wie man die Dateien entpackt. Wie in dem Link, kann ich keine Tools von Drittanbietern annehmen (außer winRAR).
Vielen Dank im Voraus und sorry für englische Fehler
Wenn Sie Windows 10 haben, können Sie das viel kürzere Powershell-Äquivalent verwenden
Expand-Archive -Force C:\path\to\archive.zip C:\where\to\extract\to
Dieser Batch-Datei-Code hilft Ihnen, eine Datei zu entpacken.
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Temp\" "c:\FolderName\batch.zip"
exit /b
:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs% echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%
N.B. C:\Temp ist der Ordner, in dem die entpackte (UnZip) Datei gespeichert wird.
Und c:\Ordnername\batch.zip ist der Quellpfad (wo die Zip-Dateien gespeichert werden).
*Bitte ändern Sie den vollständigen Dateipfad (Laufwerk, Ordner & Zip-Dateiname), je nach Bedarf.
ZipFile="C:\Users\spvaidya\Music\folder.zip"
ExtractTo="C:\Users\spvaidya\Music\"
'If the extraction location does not exist create it.
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(ExtractTo) Then
fso.CreateFolder(ExtractTo)
End If
'Extract the contants of the zip file.
set objShell = CreateObject("Shell.Application")
set FilesInZip=objShell.NameSpace(ZipFile).items
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)
Set fso = Nothing
Set objShell = Nothing
Das folgende vbscript kann als file.vbs gespeichert werden und dann mit einem Batch-Skript wie ausgeführt werden:
file.vbs
in einer .bat-Datei speichern und ausführen.