controller
Goto Top

Dateiname per Batch ändern

Ich habe folgendes Problem.

Ich möchte Dateinamen um einen bestimmten Teil kürzen bzw. einen Teil herausschneiden.

Lösen möchte ich das nur per skript -> Batch , also bitte keine Tools nennen.

Die Dateinamen sind z.B.

abcde-Peter-Lustig-123.pdf
abcde-Frank-Müller-5542.pdf
--

Der erste Teil ist immer gleich, abcde.

Ich möchte das der Dateiname dann so aussieht, also der Name wegfällt.

abcde-123.pdf
abcde-5542.pdf


Gruß
Ralph

Content-Key: 217545

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

Printed on: April 23, 2024 at 11:04 o'clock

Member: rubberman
rubberman Sep 21, 2013 updated at 11:27:47 (UTC)
Goto Top
Hallo controller, willkommen im Forum.

Bestehen die Namen immer aus einem Vor- und einem Nachnamen oder gibt es auch Erna-Meier-Huber oder Prof-Dr-Ernst-Peter-Lehmann?
Sind die einzelnen Teile immer durch Bindestrich getrennt?
Kommen nie Bindestriche im ersten bzw. letzten Teil vor?

Grüße
rubberman
Member: controller
controller Sep 21, 2013 updated at 11:52:05 (UTC)
Goto Top
Es könnte schon passieren das jemand einen Doppelnamen hat und mehr als 3x das "-" im Dateinamen ist

Ja, das mit den Bindestrichen ist immer so
Member: rubberman
rubberman Sep 21, 2013 updated at 11:59:46 (UTC)
Goto Top
Hallo controller,

speichere mal folgenden Batchcode in das selbe Verzeichnis, in dem deine PDFs liegen.
@echo off &setlocal

set "first="  
for %%i in (*.pdf) do (
  set "name=%%~i"  
  setlocal EnableDelayedExpansion
  for %%j in ("!name:-=" "!") do (  
    if not defined first set "first=%%~j"  
    set "last=%%~j"  
  )
  ECHO ren "!name!" "!first!-!last!"  
  endlocal
)

PAUSE
Entferne ECHO und PAUSE, wenn du siehst dass das Umbenennen korrekt ablaufen würde, um den Code scharf zu machen.

Grüße
rubberman
Member: controller
controller Sep 21, 2013 updated at 12:31:57 (UTC)
Goto Top
Klappt super !!!!

wenn das so leicht geht haben sie vielleicht auch für dieses Problem noch eine Lösung, es ist ähnlich aber noch komplizierter.

XMDSB-VMT(1)_10004_Peter_-_187.pdf
XMDSB-VMT(2)_10004_Peter_-_187.pdf
XMDSB-VMT(1)_210004_Klaus-Dieter_-_2189.pdf (* Nachtrag, es kann hier passieren das ein Doppelname eingegeben wird oder eine Firmenname mit & oder so steht. Auch können weitere "_" odr "-" "+" und so stehen)
XMDSB-VMT(2)_210004_Klaus-Dieter_-_2189.pdf

So sollte es dann aussehen :

XMDSB-VMT(1)_10004-_187.pdf
XMDSB-VMT(2)_10004-_187.pdf
XMDSB-VMT(1)_210004-_2189.pdf
XMDSB-VMT(2)_210004-_2189.pdf


Gruß
Ralph


Hier ist das mit den "-" und "_" etwas anders.
Member: rubberman
rubberman Sep 21, 2013 at 12:30:06 (UTC)
Goto Top
Hallo controller,

ja, ist ähnlich.
@echo off &setlocal

set "first="  
set "second="  
for %%i in (*.pdf) do (
  set "name=%%~i"  
  setlocal EnableDelayedExpansion
  for %%j in ("!name:_=" "!") do (  
    if not defined first (
      set "first=%%~j"  
    ) else (
      if not defined second set "second=%%~j"  
    )
    set "last=%%~j"  
  )
  ECHO ren "!name!" "!first!_!second!-_!last!"  
  endlocal
)

PAUSE
Grüße
rubberman
Member: controller
controller Sep 21, 2013 at 12:33:53 (UTC)
Goto Top
Bin eben noch mal die Datembank durchgegangen es sind sehr viele Datensätze. Am Ende habe ich noch Firmennamen und ggf. schlecht erfaßte Daten gefunden sodas ich mein Beispiel noch mal ergänzt habe. Hoffe ich war nicht zu langsam.

Ich teste.

Ralph
Member: controller
controller Sep 21, 2013 at 12:36:29 (UTC)
Goto Top
Habe eben mal getestet, bisher alles O.K..

Ralph
Member: rubberman
rubberman Sep 21, 2013 updated at 12:44:25 (UTC)
Goto Top
Falls es noch Probleme geben sollte, definiere mal genau wie die Dateinamen auszusehen haben, die verarbeitet werden sollen. Die anderen bleiben dann unberücksichtigt. Du kannst natürlich nicht für jede nur mögliche Eventualität ein Workaround schreiben ...

Grüße
rubberman
Member: controller
controller Sep 21, 2013 at 12:45:24 (UTC)
Goto Top
Sorry,

klappt jetzt so wie gewünscht.

Danke
Ralph