Forum: PC-Programmierung letzte Buchstabe von Ordnernamen entfernen mit Skript


von Owen S. (senmeis)


Lesenswert?

Servus,

mit dem folgenden Windows Skript will man die letzte Buchstabe von 
Ordnernamen entfernen. Problem: mehrere Buchstaben werden entfernt 
stattdessen. Woran liegt das?
1
@echo off
2
setlocal disabledelayedexpansion
3
4
for /d %%f in (*) do (
5
    set "foldername=%%f"
6
    set "basename=%%~nf"
7
    call :ProcessFile
8
)
9
echo Done!
10
pause
11
exit /b
12
13
:ProcessFile
14
set "newname=%basename:~0,-1%"
15
ren "%foldername%" "%newname%"
16
exit /b

von Heinz R. (heijz)


Lesenswert?

zeig mal ein vorher-nachher-Beispiel solch eines Ordnernamens?

von T.M .. (max)


Lesenswert?

1
@echo off
2
setlocal disabledelayedexpansion
3
4
:: Erst alle Namen in eine Temp-Datei sammeln
5
set "tmpfile=%TEMP%\folders.txt"
6
for /d %%f in (*) do echo %%f>>"%tmpfile%"
7
8
:: Dann aus der Datei lesen und umbenennen
9
for /f "usebackq delims=" %%f in ("%tmpfile%") do (
10
    set "foldername=%%f"
11
    set "basename=%%~nf"
12
    call :ProcessFile
13
)
14
15
del "%tmpfile%"
16
echo Done!
17
pause
18
exit /b
19
20
:ProcessFile
21
set "newname=%basename:~0,-1%"
22
ren "%foldername%" "%newname%"
23
exit /b

von Speedy G. (Firma: ACME) (speedy-g)


Lesenswert?

1
@echo off
2
setlocal enabledelayedexpansion
3
4
:: Loop through every folder in the current directory
5
for /d %%f in (*) do (
6
    set "foldername=%%f"
7
    
8
    :: Slice the name: Start at index 0, stop 1 character from the end
9
    set "newname=!foldername:~0,-1!"
10
11
    :: Only rename if the new name isn't empty
12
    if not "!newname!"=="" (
13
        echo Renaming "%%f" -> "!newname!"
14
        ren "%%f" "!newname!"
15
    ) else (
16
        echo Skipping "%%f" (Name too short to trim)
17
    )
18
)
19
20
echo.
21
echo Process Complete!

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.