Hvordan kan du zip eller unzip fra scriptet ved hjælp af KUN Windows' indbyggede funktioner?

I Windows kan du komprimere nogle filer ved at

højreklik → Send tilkomprimeret (zipet) mappe

Og udpakke ved at dobbeltklikke på filen .zip og udpakke filerne.

Er der en måde at anvende disse evner fra et script (.bat-fil) uden at skulle installere software fra tredjepart?

Løsning

Tilbage i 2013 var det ikke muligt. Microsoft leverede ikke nogen eksekverbar fil til dette.

Se dette link for en VBS-måde til at gøre dette. https://superuser.com/questions/201371/create-zip-folder-from-the-command-line-windows

Fra Windows 8 og frem er .NET Framework 4.5 installeret som standard, med System.IO.Compression.ZipArchive og PowerShell til rådighed, kan man skrive scripts til at opnå dette, se https://stackoverflow.com/a/26843122/71312

Kommentarer (8)

Jeg har ledt efter svar på netop dette spørgsmål, og ud fra min forskning synes DiryBoy's svar at være korrekt.

Jeg fandt compact.exe-programmet komprimerer filer, men ikke for at skabe en stærkt komprimeret fil (eller sæt af filer). Det svarer til den mulighed, du får, når du højreklikker på et drevbogstav eller en partition i Windows. Du får mulighed for at foretage oprydning (fjerne midlertidige filer osv.) samt at komprimere filer. De komprimerede filer er stadig tilgængelige, men de er blot komprimeret for at skabe plads på et drev, der har lidt plads.

Jeg fandt også compress.exe, som jeg tilfældigvis havde på min computer. Det er ikke nativt på de fleste Windows-maskiner og er en del af 2003 resource kit. Den laver en slags zippet fil, men den ligner mere filer fra en Windows-opsætningsdiskette (har understregning som sidste tegn i filudvidelsen eller navnet). Og kommandoen extract.exe udpakker disse filer.

Men mantraet er, at hvis det kan gøres nativt via GUI, så er der sandsynligvis en måde at gøre det via batch, .vbs eller en anden form for script på kommandolinjen. Da Windows har haft 'send til' mulighed for at oprette en zip-fil, vidste jeg, at der måtte være en måde at gøre det via kommandolinjen, og jeg fandt nogle muligheder.

Her er et godt link, der viser, hvordan man zip en fil ved hjælp af Windows native kommandoer.

https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili

Jeg testede det med en mappe, der indeholdt flere indlejrede filer og mapper, og det fungerede perfekt. Du skal bare følge formatet i kommandolinjen.

Der er også en måde at udpakke filerne via kommandolinjen, som jeg også fandt. En måde, bare bringer åbner et Explorer-vindue, der viser, hvad indholdet af den zippede fil er. Nogle af disse bruger også Java, som ikke nødvendigvis er indbygget i Windows, men som er så almindeligt, at det næsten ser sådan ud.

https://superuser.com/questions/149489/does-windows-7-have-unzip-at-the-command-line-installed-by-default

https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line

Kommentarer (1)

Du kan udpakke en komprimeret eller oprindeligt komprimeret Windows-fil ved at bruge kommandoen Expand, f.eks.

expand MyFile.zip myFile
Kommentarer (5)