Batch - Dateinamen mit Nutzereingabe in mehreren Ordnern ändern
Guten Morgen alle zusammen,
ich stöbere schon seit mehreren Tagen in diesem Forum und treffe auf ganz ähnliche Probleme, wie ich sie zur Zeit habe. Ich habe schon selbst probiert eine Batch-Datei zu basteln, aber bislang schaff ich es nicht, dass der gewünschte Job erledigt wird. Hoffentlich könnt ihr mir weiterhelfen....
Zum eigentlichen Problem:
Ich habe vier verschiedene Ordner mit Dateien (pdf, doc, jpg, bmp, tiff)
die alle einen ähnlichen Aufbau haben:
eine acht-stellige Artikelnummer und ggf. noch einen Rest.
Bsp:
c:\bilder\45698234_Artikelfoto.jpg
c:\angebote\45698234 Angebot Firma_X.pdf
d:\katalog\45698234.jpg
usw...
(Insgesamt handelt es sich um ca. 25000 Dateien)
Viele Artikelnummern müssen nun durch eine neue achtstellige
Artikelnummern ersetzt werden, leider ohne ein bestimmtes System.
Deshalb suche ich nach eine Lösung die ungefähr so aussieht:
Benutzer gibt die alte Artikelnummer ein und
Dateien, welcher mit der alten Artikelnummer beginnen, werden in den vier Ordnern
gesucht, die ersten 8 Stellen des Dateinamens abgeschnitten
und anschliessend durch neue (durch den Nutzer einzugebende) 8 Ziffern ersetzt.
Der Rest des Dateinamens und die Endung soll beibehalten werden.
Ich freue mich auf eure Antworten
Falls ich meinen ersten Entwurf posten soll, bitte Bescheid geben.
Liebe Grüße
Sarah
Ich habe vier verschiedene Ordner mit Dateien (pdf, doc, jpg, bmp, tiff)
die alle einen ähnlichen Aufbau haben:
eine acht-stellige Artikelnummer und ggf. noch einen Rest.
Bsp:
c:\bilder\45698234_Artikelfoto.jpg
c:\angebote\45698234 Angebot Firma_X.pdf
d:\katalog\45698234.jpg
usw...
(Insgesamt handelt es sich um ca. 25000 Dateien)
Viele Artikelnummern müssen nun durch eine neue achtstellige
Artikelnummern ersetzt werden, leider ohne ein bestimmtes System.
Deshalb suche ich nach eine Lösung die ungefähr so aussieht:
Benutzer gibt die alte Artikelnummer ein und
Dateien, welcher mit der alten Artikelnummer beginnen, werden in den vier Ordnern
gesucht, die ersten 8 Stellen des Dateinamens abgeschnitten
und anschliessend durch neue (durch den Nutzer einzugebende) 8 Ziffern ersetzt.
Der Rest des Dateinamens und die Endung soll beibehalten werden.
Ich freue mich auf eure Antworten
Falls ich meinen ersten Entwurf posten soll, bitte Bescheid geben.
Liebe Grüße
Sarah
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator Biber am Aug 02, 2012 um 15:47:34 Uhr
Set /a rgc +=1
#841
#841
Content-Key: 188993
Url: https://administrator.de/contentid/188993
Printed on: April 26, 2024 at 11:04 o'clock
6 Comments
Latest comment
Hallo SarahL!
Als Anhaltspunkt: Wenn 8 Stellen am Anfang eines Dateinamens wieder durch genau 8 Stellen ersetzt werden sollen, geht das direkt mit einem "
Grüße
bastla
P.S.: "Code"-Formatierung ist hier beschrieben ...
Als Anhaltspunkt: Wenn 8 Stellen am Anfang eines Dateinamens wieder durch genau 8 Stellen ersetzt werden sollen, geht das direkt mit einem "
ren
":for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerTech%\%altenr%*.*"') do ren "%OrdnerTech%\%%i" "%neuenr%*.*"
bastla
P.S.: "Code"-Formatierung ist hier beschrieben ...
Hallo SarahL!
durch Direkteingabe in CMD testen ...
Deine Zeile 23 ist mir allerdings nicht ganz klar - ist das eher so gemeint?
Grüße
bastla
Das Ergebniss sieht leider so aus, dass der Pfad doppel angezeigt wird
Sorry - das habe ich auch übersehen: Da Du ja "dir /s/b
" verwendest, bekommst Du bereits vollständige Pfade geliefert, sodass das nochmalige Angeben des Ordners nicht nötig ist - daher einfach: ren "%%i" ...
Beim Umbennen werden nur die ersten 8 Ziffern angezeigt und nicht die Endung, also _Angebot, etc. was noch dahinter geschrieben werden muss.
Per "echo
" lässt sich das leider auch nicht simulieren - Du kannst aber einfach mitren S:\xxx\Angebote\12345678_Angebot.doc 87654321*.*
Deine Zeile 23 ist mir allerdings nicht ganz klar - ist das eher so gemeint?
for /f "delims=" %%i in ('dir /s/b/a-d "%OrdnerKat%\%altenr%*.*"') do (
echo move "%%i" "%OrdnerKatneu%\"
echo ren "%OrdnerKatneu%\%%~nxi" "%neuenr%*.*"
)
bastla