2011-09-26 16:51:38 +0000 2011-09-26 16:51:38 +0000
86
86

Een archief aanmaken vanuit een map zonder dat de naam van de map aan het archief wordt toegevoegd

Ik heb de volgende mapstructuur:

  • root
  • folder1
  • folder2
  • folder3
  • 7za.exe

Ik wil de 7-zip command line tool uitvoeren om alle bestanden in folder1 te comprimeren tot een zip bestand genaamd folder1.zip.

Het uitvoeren van het volgende

7za.exe a -tzip folder1.zip folder1\*.*

levert een zip-bestand op zoals verwacht. Echter, wanneer ik het zip-bestand open, staat er een map in genaamd folder1, en daarin staan alle bestanden die in die map stonden. Ik wil niet dat de mapnaam aan de zip-map wordt toegevoegd, d.w.z. ik wil alle bestanden in een “Flat” bestandsformaat toevoegen.

Ik wil ook niet recursief de command line tool uitvoeren voor elk individueel bestand/map.

Is er een switch die deze functionaliteit biedt?

Antwoorden (4)

141
141
141
2011-09-26 17:25:54 +0000

Uit het 7-Zip Help bestand:

a (Toevoegen) commando

Voegt bestanden aan archief toe.

Voorbeelden

`7z a archive1.zip subdirUit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

voegt alle bestanden en submappen uit de map subdir toe aan archief1.zip. De bestandsnamen in het archief zullen het voorvoegsel subdir bevatten.

7z a archive2.zip .\subdir\*

voegt alle bestanden en submappen uit de map subdir toe aan archief archive2.zip. De bestandsnamen in het archief zullen geen subdir prefix bevatten.

`cd /D c:\dir1Uit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

`7z a archive1.zip subdirUit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

voegt alle bestanden en submappen uit de map subdir toe aan archief1.zip. De bestandsnamen in het archief zullen het voorvoegsel subdir bevatten.

7z a archive2.zip .\subdir\*

voegt alle bestanden en submappen uit de map subdir toe aan archief archive2.zip. De bestandsnamen in het archief zullen geen subdir prefix bevatten.

`7z a c:\archive3.zip dir2\dir3Uit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

`7z a archive1.zip subdirUit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

voegt alle bestanden en submappen uit de map subdir toe aan archief1.zip. De bestandsnamen in het archief zullen het voorvoegsel subdir bevatten.

7z a archive2.zip .\subdir\*

voegt alle bestanden en submappen uit de map subdir toe aan archief archive2.zip. De bestandsnamen in het archief zullen geen subdir prefix bevatten.

`cd /D c:\dir1Uit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

`7z a archive1.zip subdirUit het [ 7-Zip Help ]0x3& bestand:

[ a (Toevoegen) commando ]0x3&

Voegt bestanden aan archief toe.

Voorbeelden

voegt alle bestanden en submappen uit de map subdir toe aan archief1.zip. De bestandsnamen in het archief zullen het voorvoegsel subdir bevatten.

7z a archive2.zip .\subdir\*

voegt alle bestanden en submappen uit de map subdir toe aan archief archive2.zip. De bestandsnamen in het archief zullen geen subdir prefix bevatten.

De bestandsnamen in archief c:archief3.zip zullen dir2dir3 voorvoegsel bevatten, maar ze zullen niet c:\dir1 voorvoegsel bevatten.

Dus het commando dat je zou willen zou zijn: 7za.exe a folder1.zip .\folder1\*

Let ook op hoe 7-Zip omgaat met jokertekens. Het behandelt *.* niet als “alle bestanden” – het betekent “alle bestanden met een punt in de bestandsnaam.” Bestanden zonder extensie worden gemist. Als u echt alle bestanden wilt, gebruik dan * in plaats daarvan.

Tenslotte is de parameter -tzip niet nodig als de bestandsnaam van het archief eindigt op .zip. 7-Zip is slim genoeg om uit te zoeken welk formaat je wilt in die gevallen. Hij is alleen nodig wanneer u een aangepaste extensie wilt (bv. 7za.exe a -tzip foo.xpi <files> voor een Mozilla Add-on).

2
2
2
2016-06-07 18:04:40 +0000

Dit werkte voor mij

Denk aan een mappenstructuur als C:\Parent\SubFolders….. En je wilt parent.zip maken die alle bestanden en mappen bevat in C:Ouder zonder bovenliggende map [d.w.z. het zal starten vanaf SubFolders…..]

cd /D "C:\Parent"

"7z.exe" a Parent.zip "*.*" -r

Dit zal Parent.zip maken in C:Ouder

1
1
1
2018-07-17 10:49:04 +0000

Om het geaccepteerde antwoord uit te breiden (ik was niet in staat om commentaar toe te voegen):

Op Linux werkte het toevoegen van ‘*’ niet voor mij, dus uiteindelijk verzon ik een meer uitgebreide opdrachtregel die het gewenste resultaat gaf:

curr_dir=$(pwd); \ 
cd source_code/lambda/ ; \
7z a ../../lambda.zip .; \
cd $curr_dir \
unset curr_dir

===========

scriptuitleg:

  • bewaar huidig dir-pad om later te gebruiken;
  • navigeer naar directory die gearchiveerd moet worden;
  • creëer archief (let op ‘.’ (punt) op het eind);
  • ga terug naar de originele dir;
  • verwijder de variabele die het originele dir-pad opsloeg

Ik hoop dat iemand hier iets aan heeft.

-1
-1
-1
2017-03-17 05:23:32 +0000

Wat dacht je hiervan. b.v. Map/submap1, Map/submap2

selecteer alle submappen > rechtsklik dan creëer archief > selecteer een formaat

*De naam van het archief zou de bovenliggende map zijn…

Eenvoudig toch?