CMD-Name mehrer Dateien kürzen

luke8800gts

Ensign
Registriert
Dez. 2010
Beiträge
191
Grüße,

War mir nicht sicher in welchen Forumteil ich das schreiben soll... aber weils eh recht kompliziert ist, dachte ist es hier am besten Aufgehoben...

Also ich habe eine Reihe von .c dateien und will sie so umbenennen dass nur noch der hintere Teil erhalten bleibt(welcher den eigentlichen Dateien namen wiederspiegelt)...

Bsp.

asdf_cth.c
asdf_numb.c
asdf_mbn.c

zu

cth.c
numb.c
mbn.c

Googlen hat mir wenig gebracht, darum hoff ich auf gute Antworten auf eurer Seite... Danke :)
 
Mit "rename *.c ?????.c" erhaltet er ebm nur den ersten teil... ich brauch aber den letzten Teil..

Uuh das mit Kernwerkzeug schaut kompliziert aus, gibs nicht ne einfache Lösung mit CMD?
 
Ist zwar etwas spät, aber falls Du noch immer eine Lösung suchst und bisher nicht in C programmiert hast ;), hier eine Lösung unter der Annahme, dass Du nur den Teil nach dem letzten "_" haben willst:

Code:
@echo off
setlocal enabledelayedexpansion
cls

rem alles was vor diesem letzten Trennzeichen steht wird entfernt
set delimiter=_
rem die Dateiendung der Dateien, die umbenannt/gekuerzt werden sollen
set extension=c

rem Dateinamen kuerzen
for /f "delims=" %%a in ('dir /b *.%extension%') do (
    set filename=%%a
    set fileext=%%~xa

    set newfilename=!filename!
    call :findlast
    
    rem zur Sicherheit erst mal nur Vorschau
    rem ohne das vorangestellte echo wird wirklich umbenannt
    echo ren "!filename!" "!newfilename!"
)

echo on
@goto :EOF


:findlast
for /f "tokens=1,* delims=%delimiter%" %%b in ("!newfilename!") do (
        echo %%b | find "!fileext!" >nul
        if !errorlevel!==0 (
            set newfilename=%%b
        ) else (
            set newfilename=%%c
            call :findlast
        )
    )

@goto :EOF
 
@HDScratcher

Auch wenn es schon ein paar Jahre her ist.. besten Dank für die Batch-Datei, klappt super! Wie schaut denn aber selbige aus, wenn ich folgende Umbenennung durchführen möchte:

Bsp.

403029-x-y-z.c
30302-x-y-z.c
5940302-x-y-z.c

zu

403029.c
30302.c
5940302.c

Ergo soll der hintere Teil nach dem ersten Minus (-) entfernt werden. Kannst du mir da weiterhelfen?

Danke!
 

Ähnliche Themen

Antworten
1.738
Aufrufe
354.055
Zurück
Oben