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

Gleiche Dateinamen verzippen mit Batch

Frage Entwicklung Batch & Shell

Mitglied: Jonger

Jonger (Level 1) - Jetzt verbinden

01.09.2010, aktualisiert 27.02.2011, 6305 Aufrufe, 12 Kommentare

Ich stehe vor folgendem Problem:

In einem Ordner befinden sich mehrere Dateien.
Die Dateinamen dieser Dateien sind immer doppelt vorhanden --> 123.pdf, 123.xls; 456.pdf, 456.xls; 789.pdf, 789.xls usw....

Ich muss nun immer aus 123.pdf und 123.xls eine zip-Datei erstellen.
Die zip-Datei muss dann entsprechend mit 123.zip benannt werden.

Gibt es die Möglichkeit diesen Vorgang mit einer .bat zu automatisieren?
Stand jemand schon einmal vor dem selben Problem?

Vielen Dank für Eure Antworten...!
Mitglied: Miyamoto
01.09.2010 um 11:42 Uhr
Hi,

Schau dir mal die Command-Line von 7zip an.
Link

Gruß Miyamoto
Bitte warten ..
Mitglied: bastla
01.09.2010 um 11:44 Uhr
Hallo Jonger und willkommen im Forum!

Sollte sich eigentlich in einer Zeile direkt in der CMD-Shell machen lassen:
for %i in ("D:\Dein Ordner\*.pdf") do @if exist "%~dpni.xls" @echo 7z a -tzip "D:\Gezippt\%~ni.zip" "%~dpni.*"
Als Batch:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Dein Ordner" 
03.
set "Ziel=D:\Gezippt" 
04.
 
05.
for %%i in ("%Quelle%\*.pdf") do if exist "%%~dpni.xls" echo 7z a -tzip "%Ziel%\%%~ni.zip" "%%~dpni.*"
In beiden Fällen wird - zum Testen - der Befehl zum Komprimieren wegen des "echo" nur ausgegeben, aber nicht durchgeführt ...

[Edit] Etwas genauer wäre es noch, nur die beiden gewünschten Dateien zu erfassen (in den beiden obigen Versionen werden jeweils alle Dateien mit gleichem Namen, also etwa auch eine 123.doc, etc) in das Archiv übernommen:
for %i in ("D:\Dein Ordner\*.pdf") do @if exist "%~dpni.xls" @echo 7z a -tzip "D:\Gezippt\%~ni.zip" "%i" "%~dpni.xls"
Die Erklärung für "%~dpni" findest Du in den letzten eineinhalb Seiten von "for /?".
[Edit]

Grüße
bastla
Bitte warten ..
Mitglied: ottscho
01.09.2010 um 11:44 Uhr
Wenn du z.B. zip c:\quelle\123.* c:\ziel\123.zip sollten alle Files welche mit 123 beginnen gezippt werden.
Nun machst du das in eine Schleife und ersetzt 123 durch eine Variable, wo deine Dateinamen bzw. Zahlen beinhalten.

Gruß
ottscho
Bitte warten ..
Mitglied: Jonger
01.09.2010 um 12:30 Uhr
Wie geil ist das denn!!!!

Super - bissle angepasst und die Sache läuft!

Herzlichen Dank!!!!

gruss
Bitte warten ..
Mitglied: subdeva
26.02.2011 um 19:49 Uhr
Hallo Bastla,

ich hoffe inständig, Dich gibt es noch und dass du meinen Kommentar liest... oder mir jemand anderes helfen kann...

Ich stehe vor der gleichen (für mich derzeit) lästigen Aufgabe, mehrere Dateien zu zippen...

Habe mir den Befehl angeschaut und irgendwie hat sich im cmd auch was getan .. allerdings find ich keine zip dateien... Die Dateien liegen auf einer externen Festplatte H:\Playbacks\SFO
Natürlich hab ich die Dateiendungen ausgetauscht.. grins.. aber irgendwas scheint da doch noch zu fehlen... Ich bin absolute Laie und benötige driiiiiiiiiiiiiiiiiiiiiiingend eine konkrete Formulierung dessen, was ich im cmd eingeben muss.

Tausend Dank im Voraus.

deva
Bitte warten ..
Mitglied: bastla
26.02.2011 um 21:43 Uhr
Hallo subdeva und willkommen im Forum!

Grundsätzlich ist es keine ganz so gute Idee, sich an alte Threads ranzuhängen - ein neuer mit dem Hinweis auf den (ähnlichen) alten bietet bessere Chancen, dass Dir auch andere Batcher hier helfen können ...
Wenn Du den obigen Batch angepasst hast, kannst Du noch aus "echo off" ein "echo on" machen und ihn dann von der Kommandozeile aus starten - so kannst Du den Ablauf genau nachvollziehen (und damit auch einen ev Fehler genauer eingrenzen bzw beschreiben) ...

... und, nur zur Sicherheit: "7zip" ist bei Dir installiert und gibt ein "Lebenszeichen", wenn Du an der Kommandozeile einfach nur "7z" eingibst? Falls nein, genügt es auch, sich die Version "7za" zu holen, die entpackte "7za.exe" in den Windows-Ordner zu kopieren und im Batch aus "7z" eben "7za" zu machen ...

Grüße
bastla
Bitte warten ..
Mitglied: subdeva
27.02.2011 um 02:50 Uhr
stöhn.. sorry Bastla... das ist zu viel für mich.. lach.. doch erstmal danke und *froi froi* für deine Antwort.. ich pikse noch ein wenig...und um es Dir noch mal zu verdeutlichen, was für eine Megalaie ich bin .. ich weiß nicht mal was ein Batch ist,.. grins.. Ob das, was ich gemacht habe richtig ist, bezweifle ich eigentlich... also für ganz Doofe wie mich...

Ich habe diese von dir geschriebene Zeile verwendet:

for %i in ("D:\Dein Ordner\*.pdf") do @if exist "%~dpni.xls" @echo 7z a -tzip "D:\Gezippt\%~ni.zip" "%~dpni.*"

bin vorher auf H:.. und habe in der Klammer ("H:\Playbacks\SFO\*.cdg*) .. anstelle der xls habe ich mp3 verwendet.. und habe als Zielordner "H:\Gezippt\... alles andere habe ich quasi so gelassen, wie du es schriebst..

Ja ich habe 7 zip installiert.. und im cmd ratteln auch die ganzen Dateien runter und werden als Zip Datei aufgeführt.. allerdings finde ich sie nicht auf dem Rechner.. Ergo.. Dussele wird wohl die Zeile so nicht übernehmen können? Wollte mich auch schlau machen, was ~dpni sein soll über deine andere Info.. mit dem for.. was ist ergo on of... auch hier hab ich null Ahnung was das ist,... *schäm*.. Bin am Suchen wie eine Dolle aber konnte ausser den Thread hier nichts finden .. Google lässt mich hängen.. grins

Also auf gut Deutsch, das ist hier für mich Fremdsprache.. und ich benötige wirklich eine Anleitung für Blöde *liebschaut*

Grüßle
deva
Bitte warten ..
Mitglied: bastla
27.02.2011 um 11:42 Uhr
Hallo subdeva!

Dass Du keine Zip-Dateien erhalten hast, ist nicht weiter überraschend - die von Dir verwendete Zeile hat als besondere Eigenschaft ein "Sicherheits"-"echo" - um mich mal selbst zu zitieren:
In beiden Fällen wird - zum Testen - der Befehl zum Komprimieren wegen des "echo" nur ausgegeben, aber nicht durchgeführt ...
Wenn Du dieses "echo" weg lässt (getestet hast Du ja schon genug ), wird nicht mehr gezeigt, was passieren würde, sondern tatsächlich gezippt ...
was ~dpni sein soll
... ist relativ leicht zu erklären (bzw mittels "set /?" in der Online-Hilfe nachzulesen): Für jede Datei, die von der Schleife erfasst wird, enthält "%i" alle Pfad-Informationen (inklusive Namen und Dateityp); wenn jetzt aber nur alles außer dem Typ benötigt wird, können die restlichen Daten ("drive", "path" und "name") einzeln - bzw als Kombination - angesprochen werden - ist demnach gerade die Datei
H:\Playbacks\SFO\Beispiel.cdg
an der Reihe und daher durch "%i" repräsentiert, ergibt sich daraus
H:\Playbacks\SFO\Beispiel
- daran noch ein ".*" angefügt "erwischt" jetzt alle Dateien dieses Ordners mit diesem Namen, unabhängig davon, welchen Typ sie haben, und kann sie so gemeinsam in eine Zip-Datei komprimieren. Damit diese Datei den gleichen Namen (und natürlich den Typ ".zip") wie die enthaltenen Dateien bekommen kann, wird dann nur "%~ni" - dieses Mal geht es ja nicht auch um Laufwerk oder Pfad - verwendet.
Eine Batch-Datei ist übrigens dazu da, die ganze Aktion mehrmals auszuführen - dazu werden die Befehle in eine Datei mit dem Type ".bat" oder ".cmd" gespeichert, und danach reicht ein Starten dieser Datei (per Doppelklick oder durch Eingabe Ihres Namens - bzw, falls sie nicht im aktuellen Ordner liegt des kompletten Pfades - an der Kommandozeile), um die enthaltenen Arbeitsschritte durchführen zu lassen - bei einem Einzeiler wie in diesem Fall eigentlich gar nicht nötig, aber etwas übersichtlicher und leichter anzupassen, wie das Beispiel oben zeigen sollte ...

Grüße
bastla
Bitte warten ..
Mitglied: subdeva
27.02.2011 um 13:04 Uhr
also ganz ehrlich.. Bastla.. wärst jetzt in meiner Nähe, ich würd dich niederknutschen *strahl wie ne Gescheite*.. weils Blondchen hats geschafft.. grinsel..

Gaaaaaaaaaaaaaaaanz lieben Dank an Dich.. ich bin jesses erleichtert.

PS: Gibt es noch etwas ausser die primitiven Programme, wie ich doppelte Dateien ausfindig machen kann?.. fg.. ich weiß ein anderer Thread.. aber wenn ich dich hier schon mal hab.. sag mir ja und ich eröffne einen neuen.. lach..

Liebe Grüße und Dich niederknuddel für deine Geduld.

deva
Bitte warten ..
Mitglied: bastla
27.02.2011 um 13:16 Uhr
Hallo subdeva!

Schön, dass es jetzt tut ...
Gibt es noch etwas ausser die primitiven Programme, wie ich doppelte Dateien ausfindig machen kann?
So ganz genau weiß ich jetzt zwar nicht, was ich mit der Frage anfangen soll - aber doppelte (oder auch mehrfach vorhandene) Dateien lassen sich mit zB CloneSpy recht gut finden und behandeln ...

Falls Deine Frage anders gemeint war, würde ich tatsächlich zu einem neuen Thread raten.

Grüße
bastla
Bitte warten ..
Mitglied: subdeva
27.02.2011 um 15:28 Uhr
ne du bist klasse.. danke, danke, danke... (Hast bestimmt schon nen ganzen Sack voll mit Danke.. lach)...

Ich bin wunschlos glücklich und jetzt kann auch jeder andere Laie, sofern Bedarf besteht, das hier verstehen.. grinsel
Bitte warten ..
Mitglied: Biber
27.02.2011 um 16:04 Uhr
Moin subdeva,

auch von mir ein Willkommen im Forum.

Bevor dir noch ein "Ach übrigens, dabei fällt mir noch eine Frage ein.." in den Sinn und wie bei Frauen üblich auch auf die Lippen bzw. Tastatur kommt...
*anmutig 50 Cent in die Chauvi-Kasse schnipp*

Ich schliesse diesen Thread mal... wir haben genug ausgewiesene Neubaufläche für kommende Beiträge.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...