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, 7104 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Dateien zusammenführen inkl. finden von doppelten Einträgen (3)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
gelöst Alte Daten automatisch per Zip erstellen (4)

Frage von BEBBYs zum Thema Batch & Shell ...

Debian
Kann Linux nicht im bios finden! (3)

Frage von pixelBf zum Thema Debian ...

Batch & Shell
gelöst Per Batch Winrar entpacken - Probleme bei Pfad (7)

Frage von Concurve zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...