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, 7126 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 ...

Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Switche und Hubs
gelöst Brücke zwischen zwei VLANS finden (9)

Frage von D1Ck3n zum Thema Switche und Hubs ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

Netzwerke
Vorschlag Hotelverkabelung (14)

Frage von FA-jka zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

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