v-e-o1
Goto Top

Dateinamen ändern durch Abschneiden von Zeichen

Versuche vergeblich seit Stunden, meine Dateinamen zu ändern. Hab auch schon den Vorschlag von Markus ausprobiert...gescheitert face-sad

Hallo zusammen,

ich versuche schon seit einer Weile, meine über 900 Dateinamen zu ändern.

Die Dateinamen sind wie folgt aufgebaut:

ArtNr._Beschreibung1_Beschreibung2_Beschreibung3.jpg

Die Art.-Nr. ist immer 4 Ziffern lang, der Anstieg der Ziffern ist ungleichmäßig.

Ich habe versucht, alles ab der 5 Stelle im Dateinamen abzuschneiden mit folgendem Befehl
@echo off & setlocal

Set Verzeichnis=c:\Fotos\test\*.jpg

for /f "delims=_ tokens=1-4*" %%a in ('dir %Verzeichnis% /s /b') do call :Machwas %%a %%b %%c %%d %%e  
goto :eof


:Machwas
Set ArtNr=%1
Set Beschr1=%2
Set Beschr2=%3
Set Beschr3=%4

ren %ArtNr%_%Beschr1%_%Beschr2%_%Beschr3%.jpg %ArtNr%.jpg

Es kommt die Fehlermeldung "%%a" ist an dieser Stelle syntaktisch nicht verarbeitbar.

Was mache ich falsch und/wo liegt der Fehler? Wie muss meine Befehlskette richtig lauten?

Danke und Gruß

v-e-o1

[Edit Biber] Codeformatierung [/Edit]

Content-Key: 155051

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: bastla
bastla Nov 14, 2010 at 18:35:03 (UTC)
Goto Top
Hallo v-e-o1!

Sollte (ungetestet) so gehen:
@echo off & setlocal
set "Verzeichnis=c:\Fotos\test"  
set "Dateien=*.jpg"  

pushd "%Verzeichnis%"  
for /f "delims=" %%a in ('dir /s /b /a-d %Dateien%') do for /f "delims=_" %%i in ("%%~na") do echo ren "%%a" "%%i.*"  
popd
Wenn's ok aussieht, das "echo" vor dem "ren" entfernen ...

Grüße
bastla

[Edit] Überzähliges Anführungszeichen in Zeile 5 durch fehlendes Prozentzeichen ersetzt [/Edit]
Member: Bummel09
Bummel09 Nov 14, 2010 at 18:35:20 (UTC)
Goto Top
Was soll wo abgeschnitten werden? Du brauchst dafür nicht extra eine Batch, es genügt auch schon den FileRenamer zu verwenden. Mit diesem kannst du den ganzen Spaß auf einer Oberfläche einstellen, dir die Vorschau anschauen und dann umsetzen.
Member: v-e-o1
v-e-o1 Nov 14, 2010 at 22:13:00 (UTC)
Goto Top
Hallo bastla,

wieder die Meldung " "%%a" ist an dieser Stelle syntaktisch nicht verarbeitbar " face-smile

Grüße
v-e-o1
Member: v-e-o1
v-e-o1 Nov 14, 2010 at 22:14:45 (UTC)
Goto Top
Der Dateiname soll vor dem ersten "_" abgeschnitten werden. Ich brauche nur die reine Art.-Nr. als Dateiname. Welchen File-Renamer nimmt man da und wie ist der zu handhaben?

Grüße von

v-e-o1
Member: bastla
bastla Nov 14, 2010 at 22:23:03 (UTC)
Goto Top
Hallo v-e-o1!

Diese Meldung könnte ich mir eigentlich nur erklären, wenn Du die Zeile direkt in der CMD-Shell eingeben würdest (dann wäre jeweils nur ein einzelnes "%"-Zeichen erforderlich) - bei Verwendung der geposteten Zeilen als Batch dürfte es diesen Fehler nicht geben (inzwischen auch getestet) ...

Grüße
bastla
Member: v-e-o1
v-e-o1 Nov 14, 2010 at 23:05:26 (UTC)
Goto Top
Hallo bastla,

danke fürs erste. Bei den meisten Dateien hats funktioniert. Nur bei 4-5 Dateien ging es nicht. verstehe ich aber nicht, da die syntax eigentlich alle erfassen müsste.

Aber das Grundproblem ist gelöst, denke ich.

Wenn ich jetzt den Haken setze "der Beitrag gilt als gelöst", was muss ich noch tun...nicht das ich wieder jemanden verärgere. Bin ja froh, hier geholfen zu bekommen.

Gruß v-e-o1
Member: bastla
bastla Nov 14, 2010 at 23:11:26 (UTC)
Goto Top
Hallo v-e-01!
Nur bei 4-5 Dateien ging es nicht.
Könnte es sein, dass es im betreffenden Ordner bereits eine gleichnamige Datei gab und dass deshalb nicht umbenannt werden konnte?
Wenn ich jetzt den Haken setze "der Beitrag gilt als gelöst", was muss ich noch tun
Das genügt dann schon ... face-wink

Grüße
bastla
Member: Bummel09
Bummel09 Nov 15, 2010 at 09:36:54 (UTC)
Goto Top
Hallo,

ich selber habe diesen im Einsatz:

http://hp.vector.co.jp/authors/VA014830/english/FlexRena/

Ist auf deutsch und auf der Oberfläche kannst du bequem einstellen, was von abgeschnitten werden soll und dir eine Vorschau anzeigen lassen.

Schau ihn dir einfach einmal an, ist selbsterklärend.

Bei Rückfragen stehe ich gerne zur Verfügung.
Member: micneu
micneu Nov 16, 2010 at 10:05:35 (UTC)
Goto Top
@v-e-o1 :
so ich hoffe du hast schon die lösung hier noch mal mein ansatz mit powershell.

#   **************************************************************
#   * verzeichnis recursiv durcharbeiten   *
#   * *
#   *                                                            *
#   **************************************************************
#    Das muß einmal auf der powershell ausgeführt werden
#     "Set-ExecutionPolicy Unrestricted" 
#   **************************************************************
#   * Erstellt M.N - POWERSHELL / Entwicklung   16.11.2010                   *
#   **************************************************************

#$ErrorActionPreference = 'stop' 
#$ErrorActionPreference = 'SilentyContinue' 
$QUELLE = "C:\Users\mne\Pictures\2006-03\"  
$ENDUNG = ".jpg"  
$FILE = dir $QUELLE | ? { $_.name -match '[0-9][0-9][0-9][0-9]_[*.]_[*.]_[*.].jpg' }  
foreach ( $i in $FILE ) {
    $R = $i -replace '_[*.]_[*.]_[*.]'      
    #Rename-Item $i $R
    echo $R
    }

so hoffe das es so ist wie du es braucht, konnte es nur teilweise testen, sollte aber gehen.
die zeile 20 kannst du wenn es getestet wurde das "#" entfernen und die zeile 21 habe ich erstmal zum testen

gruß michael