Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Dateiendungen in zip finden (ohne entpacken)

Frage Entwicklung Batch & Shell

Mitglied: cbli

cbli (Level 1) - Jetzt verbinden

06.11.2006, aktualisiert 20:25 Uhr, 7147 Aufrufe, 3 Kommentare

Ich möchte gerne Dateien mit einer bestimmten Dateieendung in Zip Dateien finden und daraufhin diese entpacken und in ein anderes verzeichnis kopieren lassen.
Danach sollen die gerade entpackte Zip Datei gelöscht (oder eventuell auch in ein anderes Verzeichnis verschoben werden).

Beispiel:

Ich habe im Verzeichnis d:\test\ 10 zip dateien.
Diese sollen auf Dateien mit der Dateiendung *.xyz abefragt werden (also ob sich in den Zip Dateien ,Dateien mit der Endung xyz) befinden.
Im Neinfall reicht ein simpler Hinweis,beim Jafall sollen diese entpackt werden und in ein anderes Laufwerk und Verzeichnis

c:\entpackt\

kopiert werden.
Außérdem soll automatisch überprüft werden ob sich die entpackten Dateien schon in dem neuen Verzeichnis befinden und wenn ja automatisch überschrieben werden,ohne das ich mit Enter bestätigen muss.
Die bereits abgearbeiteten Zip Dateien sollen wie oben erwähnt entwerder verschoben oder gelöscht werden.
Dies soll so lange laufen bis in dem bestimmten Verzeichnis sich keine Zip Dateien mehr befinden.
Wie mache ich das ,wenn z.b auf verschiedene Dateiendungen abgefragt werden soll und diese dann auch in verschiedene Verzeichnisse kopiert werden sollen (immer das gleiche Verzeichnis entsprechend der Dateiendung).

Wer kann mir helfen ?

Danke
Claus
Mitglied: bastla
06.11.2006 um 19:36 Uhr
Hallo Claus!

Am Beispiel der Commandline-Version von 7zip (http://www.7-zip.org/download.html) Schritt 1 - Entpacken:

01.
7za e *.zip -oD:\Texte -y *.txt -r 
02.
7za e *.zip -oD:\Docs -y *.doc -r 
03.
...
Kurze Erläuterung:
"e" für Entpacken
"-oD:\Texte" für Zielverzeichnis (muss noch nicht existieren)
"-y": JA-Sager (keine Rückfrage zB beim Überschreiben)
"-r" für die Behandlulng aller im Archiv enthaltenen passenden Dateien (auch aus eventuellen Unterverzeichnissen innherhalb der .zip-Datei)

Was das Löschen/Verschieben anlangt: Wenn alles (alle gewünschten Dateitypen) aus den vorhandenen .zip-Dateien "gesaugt" wurde, könnten ja auch eigentlich alle .zip-Dateien entsorgt werden ...

HTH
bastla
Bitte warten ..
Mitglied: bastla
06.11.2006 um 20:14 Uhr
Ergänzung für den Fall, dass tatsächlich unterschieden werden muss, ob aus einer .zip nun etwas herauszuholen war oder nicht:

01.
@echo off & setlocal 
02.
del Entpackt.txt 2>nul 
03.
del Nixdrin.txt 2>nul 
04.
for %%i in (*.zip) do call :unzip "%%i" 
05.
goto :next 
06.
:unzip 
07.
for /f "delims=" %%m in ('7za e %1 -oD:\Texte -y *.txt -r') do set Erg=%%m 
08.
If "%Erg%"=="No files to process" echo %1 >> Nixdrin.txt & goto :eof 
09.
echo %1 >> Entpackt.txt & goto :eof 
10.
:next 
11.
echo Hier geht's vielleicht noch weiter
Mit der dargestellten Batch-Datei lassen sich die .zip-Dateien einzeln entpacken und je nach Erfolg in einer von zwei Logdateien ("Entpackt.txt" oder "Nixdrin.txt") protokollieren.

Da bei meinen Versuchen kein Errorlevel für den Fall, dass keine Datei zu entpacken war, zurückgeliefert wurde, musste ich die abschließende Meldung "No files to process" als Anhaltpunkt dafür nehmen.

Natürlich kann es im Batch so "weiter gehen", dass noch andere Dateitypen nach dem selben Schema entpackt werden.

Nach Abschluss aller Dekomprimierungsvorgänge könnte dann die "Entpackt.txt" als Basis für die Verschiebe- oder Löschaktion dienen.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.11.2006 um 20:25 Uhr
Moin cbli,

wenn Du auf Rückmeldungen und Protokollierung verzichten kannst, dann kannst Du es mit 7za.exe so machen (bastla's Beispiel weitergeführt)

01.
... 
02.
::.... in den Tiefen Deiner Batchdatei.... 
03.
::----un7zip.bat 
04.
for %%z in ("f:\Administrator\*.zip" "f:\OtherTools\*.zip") do @( 
05.
       For %%i in (gif tif doc reg xls) do 7za e -r -y "%%z *.%%i  -od:\temp\unzipped\%%i >nul 
06.
       REM ###uncomment if real tough guy ### Del /y "%%z" 
07.
)
Dieser formatierte Oneliner würde
- die Verzeichnisse F:\Administrator und F:\OtherTools nach *.zip-Dateien durchsuchen
- in allen *.zip-Dateien nach *.gif's, *.tif's, *.doc's, *.reg's und *.xls-Dateien fahnden
- die gefundenen ohne Rückfrage in die Verzeichnisse GIF, TIF, DOC, REG, XLS unterhalb von d:\temp\unzipped schieben
- [und wenn Du die zweite Zeile entkommentierst, alle *.ZIP-Dateien nach dem Durchsuchen löschen.]

Vorteil: Du wirst nicht mit Meldungen und Rückfragen belästigt.
Nachteil: Du hast keine Ahnung, was passiert.

Wenn der Batch mal probelaufen soll mit diesem Code unten, dann würde er sagen [wenn das ">nul" nicht wär....]
01.
for %%z in ("f:\Administrator\*.zip" "f:\OtherTools\*.zip") do @( 
02.
       For %%i in (gif tif doc reg xls) do @echo 7za e -r -y "%%z *.%%i  -od:\temp\unzipped\%%i 
03.
04.
..... 
05.
7za e -r -y "f:\OtherTools\sudowin-bin-0.1.1-r95.exe.zip *.tif  -od:\temp\unzipped\tif 
06.
7za e -r -y "f:\OtherTools\sudowin-bin-0.1.1-r95.exe.zip *.doc  -od:\temp\unzipped\doc 
07.
7za e -r -y "f:\OtherTools\sudowin-bin-0.1.1-r95.exe.zip *.reg  -od:\temp\unzipped\reg 
08.
7za e -r -y "f:\OtherTools\sudowin-bin-0.1.1-r95.exe.zip *.xls  -od:\temp\unzipped\xls 
09.
7za e -r -y "f:\OtherTools\ingroup.zip *.gif  -od:\temp\unzipped\gif 
10.
7za e -r -y "f:\OtherTools\ingroup.zip *.tif  -od:\temp\unzipped\tif 
11.
7za e -r -y "f:\OtherTools\ingroup.zip *.doc  -od:\temp\unzipped\doc 
12.
7za e -r -y "f:\OtherTools\ingroup.zip *.reg  -od:\temp\unzipped\reg 
13.
.... usw. usw.
Das andere Extrem wäre, erstmal in den *.zips's zu lesen und dann Datei für Datei anzufassen bzw. zu extrahieren.

01.
REM .... auslesen aller Dateien *.gif aus einer *.zip-Datei  .... nur der Ansatz am CMD-Prompt: 
02.
(=20:20:59  D:\temp=) 
03.
>for /f "tokens=1,* delims== " %i in ('7za l -r -slt f:\Administrator\activaid.zip *.gif ^|find "Path ="') do @echo %j 
04.
extensions\Media\ac'tivAid_Eject_eject.gif 
05.
extensions\Media\ac'tivAid_KeyState.gif 
06.
extensions\Media\ac'tivAid_KeyState_CapsLock_On.gif 
07.
extensions\Media\ac'tivAid_KeyState_Lock_On.gif 
08.
extensions\Media\ac'tivAid_KeyState_mini.gif 
09.
extensions\Media\ac'tivAid_KeyState_miniCaps.gif 
10.
extensions\Media\ac'tivAid_KeyState_miniNum.gif 
11.
....
und statt "@echo %j" könntest Du natürlich auch diese Datei "%j" irgendwohin entpacken.

Gruß
Biber
[Edit]
so machen (bastla's Beispiel weitergeführt)
Gemeint war bastla's erstes Beispiel... das zweite kannte ich noch nicht *gg
[/Edit]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Script zum Entpacken von rar und zip-Dateien (9)

Frage von windows-nutzer zum Thema Batch & Shell ...

Visual Studio
Oracle Blob entpacken mit C-Sharp (4)

Frage von it4baer zum Thema Visual Studio ...

VB for Applications
VBA - Automatisches Entpacken von Zipordnern (6)

Frage von it4baer zum Thema VB for Applications ...

Mac OS X
gelöst Finale Dateigröße ohne Entpacken ermitteln (3)

Frage von pelzfrucht zum Thema Mac OS X ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...