Gleiche Dateinamen verzippen mit Batch
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...!
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...!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150108
Url: https://administrator.de/contentid/150108
Ausgedruckt am: 25.11.2024 um 04:11 Uhr
12 Kommentare
Neuester Kommentar
Hallo Jonger und willkommen im Forum!
Sollte sich eigentlich in einer Zeile direkt in der CMD-Shell machen lassen:
Als Batch:
In beiden Fällen wird - zum Testen - der Befehl zum Komprimieren wegen des "
[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:
Die Erklärung für "
[Edit]
Grüße
bastla
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.*"
@echo off & setlocal
set "Quelle=D:\Dein Ordner"
set "Ziel=D:\Gezippt"
for %%i in ("%Quelle%\*.pdf") do if exist "%%~dpni.xls" echo 7z a -tzip "%Ziel%\%%~ni.zip" "%%~dpni.*"
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
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
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
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 "
... und, nur zur Sicherheit: "7zip" ist bei Dir installiert und gibt ein "Lebenszeichen", wenn Du an der Kommandozeile einfach nur "
Grüße
bastla
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
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
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
Hallo subdeva!
Dass Du keine Zip-Dateien erhalten hast, ist nicht weiter überraschend - die von Dir verwendete Zeile hat als besondere Eigenschaft ein "Sicherheits"-"
an der Reihe und daher durch "%i" repräsentiert, ergibt sich daraus
- daran noch ein "
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
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 "
Wenn Du dieses "echo
" nur ausgegeben, aber nicht durchgeführt ...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 DateiH:\Playbacks\SFO\Beispiel.cdg
H:\Playbacks\SFO\Beispiel
.*
" 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
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
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
Hallo subdeva!
Schön, dass es jetzt tut ...
Falls Deine Frage anders gemeint war, würde ich tatsächlich zu einem neuen Thread raten.
Grüße
bastla
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
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
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