Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per Batch Dateien aus mehreren Ordnern packen

Frage Entwicklung Batch & Shell

Mitglied: Fixi637

Fixi637 (Level 1) - Jetzt verbinden

23.06.2010, aktualisiert 30.06.2010, 8023 Aufrufe, 11 Kommentare

Hallo miteinander

Ich habe schon etwas im Internet rumgestöbert, aber leider noch nicht wirklich was brauchbares gefunden.

Mein Problem ist folgendes:

Ich möchte den Inhalt von ca. 5000 Ordnern packen (für jeden Ordner ein Archiv) und dann die Daten aus dem Ordner löschen.
Das Ganze möchte ich gerne mit Hilfe einer Batch Datei und 7zip umsetzen. Die Namen für die jeweiligen Archive soll sich auf den Ordnernamen beziehen. Also zu dem Ordner "Test" soll dann das dazugehörige Archiv den Namen "Test" haben.

Gibt es die Möglichkeit so etwas umzusetzen und kann mir hier vielleicht jemand weiterhelfen? Ich steh irgendwie total auf dem Schlauch und hab auch noch nicht so die große Erfahrung damit.


Grüße

Fixi
Mitglied: LotPings
23.06.2010 um 13:57 Uhr
Hallo Fixi,

ich sehe da kein Problem,
  • wie sieht die Ordnerstruktur aus?
  • gibt es Unterordner?
  • soll im Archiv der Ordner (relativ/absolut) enthalten sein?

Für den Anfang könnte dies reichen ( in einem CMD Fenster)
01.
for /F "delims=" %A in ('Dir /B/AD *') Do 7z.exe a -r -tzip %A %A\* && RD /S /Q %A
In einer Batch-Datei wären die %-Zeichen zu verdoppeln.

Gruß
LotPings

Edit: Das 2009 war von einem Test übrig geblieben, entfernt

In Anlehnung an Bastlas Batch hier eine Batch Variante
01.
@Echo off&SetLocal 
02.
Set "SevenZ=C:\Programme\7-zip\7z.exe" 
03.
Pushd "C:\Hauptordner" 
04.
for /F "delims=" %%A in ('Dir /B/AD *') Do %SevenZ% a -r -tzip %%A %%A\* && RD /S /Q %%A 
05.
Popd
Unterschiedlich ist :
  • anderer Archivtyp (zip) und
  • der Unterordner ist im Archiv enthalten

Gruß
Lotpings
Bitte warten ..
Mitglied: bastla
23.06.2010 um 14:04 Uhr
Hallo Fixi637 und willkommen im Forum!

Soferne alle Ordner auf der selben Ebene liegen, könnte das etwa so gehen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Alle Ordner sind hier drin" 
03.
set "Ziel=D:\Da sollen die gepackten Dateien hin" 
04.
set "7z=C:\Programme\7-zip\7z.exe" 
05.
 
06.
for /d %%i in ("%Basis%\*.*") do ( 
07.
    pushd "%%i" 
08.
    "%7z%" a -r "%Ziel%\%%~nxi.7z" *.* && echo del /s /q /a /f *.* 
09.
    popd 
10.
)
Anmerkungen:
  • Die Zeile 2 bis 4 sind an Deine Gegenheiten anzupassen.
  • Wegen des "echo" vor dem "del" wird das Löschen der Dateien nur simuliert (um Ernst zu machen, das "echo" einfach entfernen).
  • Es werden (lt Vorgabe) alle Dateien, aber keine Ordner gelöscht.
  • Da von mir ungetestet, solltest Du den Batch nicht gleich auf alle 5000 Ordner loslassen, sondern zunächst nur einen Testordner mit 2 oder 3 Unterordnern benutzen ...

Grüße
bastla

[Edit] Hallo LotPings! Wieder einmal auf der Überholspur unterwegs ...
Bitte warten ..
Mitglied: Fixi637
23.06.2010 um 14:11 Uhr
Hi LotPings

Danke für deine Antwort.

Die Ordnerstruktur sieht folgendermaßen aus:

Hauptordner
- Unterordner1
- Unterordner2
- Unterordner3
- Unterordner4
usw.

Ich möchte halt, dass er nur die Dateien, die sich in den Unterordnern befindet packt und dann die gezippte Datei mit dem Namen des Ordners benennt. Also die Dateien aus dem "Unterordner1" sollen gepackt werden in das Archiv "Unterordner1". Das Archiv soll sich dann wiederrum in dem "Hauptordner" befinden. Danach soll er noch den "Unterordner1" löschen und dann zum nächsten Ordner weitergehen.


Grüße

Fixi
Bitte warten ..
Mitglied: Fixi637
23.06.2010 um 14:30 Uhr
Hallo bastla

Ich habe das soweit mal angepasst. Da kommt aber eine Fehlermeldung:

Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters ist ungültig: %~nxi.7z" *.* && del /s /q /a /f *.*

Hab ich da irgendwas falsch gemacht?


Grüße
Fixi
Bitte warten ..
Mitglied: bastla
23.06.2010 um 14:50 Uhr
Hallo Fixi637!
Hab ich da irgendwas falsch gemacht?
Leider nein - das hab' ich selbst verbockt ...

Unter Berücksichtigung Deiner Antwort an LotPings wäre ohnehin eine Anpassung erforderlich gewesen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Alle Ordner sind hier drin" 
03.
set "Ziel=%Basis%" 
04.
set "Prog=C:\Programme\7-zip\7z.exe" 
05.
 
06.
for /d %%i in ("%Basis%\*.*") do ( 
07.
    "%Prog%" a -r "%Ziel%\%%~nxi.7z" "%%i\*.*" && echo rd /s /q "%%i" 
08.
)
Die ".7z"-Dateien (wenn es ".zip" werden sollen, wie von LotPings schon verwendet: -tzip nach dem "-r") werden jetzt im Ausgangsordner erstellt und die gepackten Ordner (nicht nur die darin enthaltenen Dateien) gelöscht - damit besteht eigentlich nur mehr ein Unterschied zum ersten Ansatz von LotPings: Die Batchdatei muss nicht im Ausgangsordner liegen ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
23.06.2010 um 15:01 Uhr
Zitat von bastla:
Hallo Fixi637!
> Hab ich da irgendwas falsch gemacht?
Leider nein - das hab' ich selbst verbockt ...
Die Begründung was falsch war ist aber durchaus interessant:
Die Shell interprtiert in der Schleife das %7 von "%7z%" als Kommandozeilenargument 7
Der Grund warum Variablennamen nicht mit Ziffern beginnen sollten.
(Ich habe aber auch erst probieren müssen bevor ich darauf kam...)

Gruß
LotPings
Bitte warten ..
Mitglied: Fixi637
23.06.2010 um 15:25 Uhr
Hallo

Jetzt hats gepasst und es klappt auch wunderbar. Danke euch beiden für die schnelle Hilfe.


Grüße

Fixi
Bitte warten ..
Mitglied: Fixi637
30.06.2010 um 10:23 Uhr
Hallo,

ich bräuchte bei diesem Thema noch einmal eine kleine Hilfe.
Und zwar mächte ich diesen Schritt auch wieder Rückgängig machen können.
Also möchte ich jetzt die Dateien, die sich in der zip Datei "ordner1.zip" befinden in der Ordner "ordner1" entpacken.
Es sollen also die zip Dateien entpackt werden und in einem Ordner gespeichert werden, der wie die zip Datei heißt. Danach soll die zip Datei gelöscht werden. Kann man das irgendwie umsetzen?

Danke schonmal für eure Hilfe.


Grüße
Fixi
Bitte warten ..
Mitglied: LotPings
30.06.2010 um 11:46 Uhr
Zitat von Fixi637:
Es sollen also die zip Dateien entpackt werden und in einem Ordner gespeichert werden, der wie die zip Datei heißt.
Danach soll die zip Datei gelöscht werden. Kann man das irgendwie umsetzen?

Hallo Fixi,
hängt davon ab welche Variante du benutzt, Bastlas oder meine.

Bei meiner Batch ist der Ordnername mit im Archiv abgespeichert.

Auf der Kommandozeile in deinem Hauptordner reduziert sich das auf:
c:\Programme\7-zip\7z.exe x Ordner1.zip && Echo Del Ordner1.zip
hier wieder mit dem "entschärften" Del.

Um alle im aktuellen Ordner befindlichen Zips hier zu entpacken:
For %A in (*.zip) Do @c:\Programme\7-zip\7z.exe x "%A" && Echo Del "%A"
Bei Bastlas Version müsste man als Zielverzeichnis den Ordner noch angeben, ggfs erst erzeugen.

Gruß
LotPings
Bitte warten ..
Mitglied: Fixi637
30.06.2010 um 14:54 Uhr
Hallo LotPings,

danke für deine Antwort. Hab das mittlerweile durch probieren auch rausgefunden. Anfangs habe ich einfach zu kompliziert gedacht, bzw. mir war nicht klar, dass man das so einfach umsetzen kann. Habe das einfach nur mit folgender Zeile gemacht.

c:\programme\7-zip\7z.exe x *.zip -o* && del *.zip


Gruß
Felix
Bitte warten ..
Mitglied: LotPings
30.06.2010 um 15:03 Uhr
Zitat von Fixi637:
Anfangs habe ich einfach zu klompleziert gedacht,
Interessante Wortschöpfung

Ansonsten schön, wenn es klappt.

Gruß
LotPings
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit Batch und 7zip mehrere Dateien packen
gelöst Frage von InvisibleQuantumBatch & Shell3 Kommentare

Hay, ich bin gerade dabei eine Batch zu erstellen die mehrere Dateien generiert. Nachdem alle Dateien fertig sind sollen ...

Batch & Shell
Batch - Dateien mehrer Ordner kopieren in jeweilige Unterordner
gelöst Frage von mr-neoBatch & Shell7 Kommentare

Hallo zusammen, folgendes Vorhaben möchte ich durchführen. Ich denke, mit einem cmd Befehl bzw. einer *.bat Datei sollte das ...

Batch & Shell
Batch: Ordner auf Datei überprüfen
gelöst Frage von donmanolitoBatch & Shell4 Kommentare

Hallo Ich suche eine Möglichkeit alle Ordnernamen eines Verzeichnisses in eine Variable zu schieben um dann per Schleife ein ...

Windows 10
Mehrere Dateien in Mehrere Ordner Kopieren
Frage von TheTurtleWindows 101 Kommentar

Hallo Zusammen Folgende Situationen: Ich muss immer wieder mahl den Inhalt eines Ordners mit ca. 60-100 Dateien in mehrere ...

Neue Wissensbeiträge
Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 27 MinutenSicherheit

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 51 MinutenSicherheit8 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 7 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 20 StundenMac OS X4 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell27 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1025 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...