winniemc
Goto Top

Batchumbenennung

Schönen guten Morgen,

wir bekommen jede Woche eine CD mit Bilder zugeschickt.
Auf dieser CD sind bis zu 100 Bilder die alle so heißen:
a03611108214.jpg
i03611305169.jpg
(Zahlen und Buchstaben ändern sich)

Damit wir diese bei uns verarbeiten können, müssen wir diese auf den Anfangsbuchstaben und auf die letzten 4 Zahlen verkürzen.
z.B. so:
a8214.jpg
i5169.jpg

Ich suche jetzt einen Batchbefehl der mir die Zahlen dazwischen entfernt.

Habe hier im Forum schon einige Beiträge zum Thema gelesen, aber habe leider nicht das Fachwissen um die bestehenden Batchbefehle für meinen Zweck umzuschreiben.

Vielen Dank für die Hilfe

Content-Key: 46804

Url: https://administrator.de/contentid/46804

Printed on: April 25, 2024 at 13:04 o'clock

Member: Schmitt.Mathias
Schmitt.Mathias Dec 15, 2006 at 07:49:56 (UTC)
Goto Top
Hi
ich habe meine Bilder immer mit IrfanView umbenannt, da gibts unter Datei -> Batchbearbeitungen -> Dateien umbenennen (oder so ähnlich) eine Funktion, wo du alle eingeladenen Dateien oder die eines Ordners nacheinander mit einem Klick umbenennen kannst.
Hierfür gibt es auch diverse Einstellungen (best. Name, best. fortlaufende Nr...).
Schau mal, ob es ne Funktion gibt, um deinen Dateinamen entsprechend zu kürzen.

Das Programm heißt wie schon gesagt IrfanView und ist Freeware.

Gruß
Mathias
Member: miniversum
miniversum Dec 15, 2006 at 08:17:07 (UTC)
Goto Top
Das ist änlich dem Problem hier: Ordner umbenennen per batch

Versuchs so (ungetestet):

@echo off
Setlocal EnableDelayedExpansion
FOR /F %%i in ('dir /b') do set Name=%%i && rename !Name! !Name:~0,1!!Name:~-4!

miniversum
Member: WinnieMC
WinnieMC Dec 15, 2006 at 08:40:55 (UTC)
Goto Top
Danke für eure schnellen Hilfsversuche.
Irfan View funktioniert zwar gut aber kommt bei uns leider nicht in Frage, da mehrere Personen an unterschidlichen Arbeitsstationen umwandeln und wir nur für das Umwandeln keine Lizenzen kaufen wollen.

Miniversum deinen Befehl habe ich getestet und er wandelt mir nur 4 Dateien um. 3 Bilder und immer die Batchdatei. Beim umwandeln entfernt er alles nach dem ersten Zeichen und fügt am Ende die Dateiendung nur an.

Sieht dann so aus :
ajpg
ijpg

Punkt vor der Dateiendung wird auch gelöscht.

Den anderen Beitrag muss ich mir erst noch in Ruhe anschauen, wenn ich dazu Zeit finde.
Member: anding
anding Dec 15, 2006 at 08:46:48 (UTC)
Goto Top
Hallo!

Ich weiß, man soll nicht in Fremde Threads fragen posten, aber hier wird ja fast das gleiche gescuht... face-wink

@miniversum:
Kann man das auch von hinten machen (hört sich blöd an, i know... face-big-smile )
Sprich, die letzten 4 Zeichen bleiben, und dann sollen (von hinten) 10 stellen gelöscht werden. Das hat den Hintergrund, weil die Dateinamen nicht alle gleich lang sind und ich den Anfang komplett will.
Hoffe du verstehst was ich meine!
Member: WinnieMC
WinnieMC Dec 15, 2006 at 08:54:09 (UTC)
Goto Top
So, hab dank der guten Beschreibung im anderen Thread mir es passend zusammen gebastelt. Nun hab ich nur noch ein Problem. Ich möchte die Batchdatei gerne im selben Ordner haben. Diese wird aber leider mit Umbenannt. Gibt es eine Möglichkeit die Batchdatei davor zuschützen? Aller heißt die Datei Test.bat dann nicht umbenennen?

Vielen Dank für die Hilfe
Member: Biber
Biber Dec 15, 2006 at 09:13:18 (UTC)
Goto Top
Moin WinnieMC,

Da Du ja nur *.jpg-Dateien verarbeiten willst, kannst Du das in der DIR-Anweisung ja darauf einschränken.
FOR /F %%i in ('dir /b *.jpg') do set Name....  

Gruß
Biber
Member: WinnieMC
WinnieMC Dec 15, 2006 at 09:19:08 (UTC)
Goto Top
Danke hat alles super funktioniert.
Member: Schmitt.Mathias
Schmitt.Mathias Dec 15, 2006 at 14:52:18 (UTC)
Goto Top
Alter Biber, woher weißte so Sachen denn immer face-smile ???

Gruß
Mathias
Member: miniversum
miniversum Dec 15, 2006 at 17:00:53 (UTC)
Goto Top
Ok war ein Denkfehler von mir. War wie gesagt ungetestet.
Drum hier das ganze nochmal mit allen Korrekturen.

@echo off
Setlocal EnableDelayedExpansion
FOR /F %%i in ('dir /b *.jpg') do set Name=%%i && rename !Name! !Name:~0,1!!Name:~-8!

miniversum
Member: anding
anding Dec 15, 2006 at 17:11:02 (UTC)
Goto Top
@miniversum

Hast du vielleicht auch einen Tip für mein Problem (ein paar Posts weiter oben)?!
Member: miniversum
miniversum Dec 15, 2006 at 17:28:57 (UTC)
Goto Top
Sorry überlesen.
Klar geht das, so mache ich das hier ja auch.

!Name:~0,1! sind ab dem ersten Zeichen 1 Zeichen lang.
!Name:~-8! sind die letzten 8 Zeichen (egal wie lange der Dateinamename ist.

miniversum
Member: anding
anding Dec 15, 2006 at 18:38:33 (UTC)
Goto Top
Ich glaub wir haben uns Missverstanden....

Dateinamen vorher:
testbild2_google.jpg
test5_google.jpg
...

Und danach soll's so aussehen:

testbild2.jpg
test5.jpg

--> Sprich er soll die Endung lassen und dann die nächsten 7 Zeichen weg (von hinten herein gezählt...)

Geht das auch?!
Member: miniversum
miniversum Dec 15, 2006 at 19:04:04 (UTC)
Goto Top
Da würd ichs dann einfach so zusammensetzen (bei .jpg als Endung:

@echo off
Setlocal EnableDelayedExpansion
FOR /F %%i in ('dir /b *.jpg') do set Name=%%i && rename !Name! !Name:~0,-12!.jpg

miniversum
Member: Biber
Biber Dec 15, 2006 at 22:25:45 (UTC)
Goto Top
Nicht, dass ich spitzfindig sein wollte, aber... face-wink

Da über die DIR-Wildcard *.jpg ja nun ALLE *.jpgs durch diese Batchzeile genudelt werden, würde ich wenigstens noch prüfen, ob denn überhaupt genug Stellen zum Kürzen vorhanden sind.
Sonst gibt es auf einmal eine Datei ".jpg" oder auch nur "pg" (was dann auch sprechend ist).

Was ich meine ist folgendes (mit *.txt-Dateien; *jpg hab ich zu wenig):
>FOR /F %i in ('dir /b *.txt') do @set "Name=%~ni" && @echo rename "!Name!%~xi" "!Name:~0,-12!.*"  
rename "Beispiel.txt" ".*"  
rename "benutzer1.txt" ".*"  
rename "benutzer2.txt" ".*"  
..

Besser, auch wenn es kryptischer aussieht:
>FOR /F %i in ('dir /b *.txt') do @set "Name=%~ni" && if "!Name:~0,-12!" GTR "" @echo rename "!Name!%~xi" "!Name:~0,-12!.*"  
rename "beateuhse_2006-10-02_171541.txt" "beateuhse_2006.*"  

Gruß
Biber
Member: miniversum
miniversum Dec 16, 2006 at 12:29:31 (UTC)
Goto Top
Klar ist woll eine Universellere Lösung.

Ich bin da halt von der Aussage " ... dann die nächsten 7 Zeichen weg (von hinten herein gezählt... " ausgegangen.

miniversum