mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smileys
:) ;) :smile: :lol: :hihi: :D :rofl: :muahah: :( :pff: :kopfstreichel: :ohno: :betruebt: :heulen: :kopfkratz: :duckundweg: :o :? :oops: :psst: :sauer: :-P :daumenrunter: :daumen: :dankeschoen: :thx: :dafür: :gähn:
Mehr Smileys anzeigen

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Karthagos » 09.03.2025, 16:51

g-force hat geschrieben: 09.03.2025, 16:23 Damit kein Denkfehler auftritt: ...Hier wurde einerseits versucht...
Hallo g-force, danke für Deinen nochmaligen Hinweis, das hatte ich auch so verstanden :anstossen:

Hallo Holgi,
danke für die Überarbeitung, so ist es für mich jetzt mehr als perfekt und ich benötige nur noch diese eine batch-Datei :erster:

Auch wenn ich mir den ganzen Thread archiviere, wer weiß, wofür ich es mal brauchen kann

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Holgi » 09.03.2025, 16:37

hier mal das funktionierende Script (ähnlich @g-force) auf cmd-Basis, welches alle Dateien im gleichen Ordner (wie das Script) mit der Endung .jpg und den Zahlen in Klammern umbenennt.
Natürlich getestet! ;) Also bei mir läuft es.

Code: Alles auswählen

@echo off
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Setze den aktuellen Ordner als Zielordner
set "ordner=%~dp0"
cd /d "%ordner%"

:: Durchsuche alle JPG-Dateien mit Klammern im Namen
for %%F in ("* (*).jpg") do (
    set "oldname=%%F"

    rem Extrahiere den Dateinamen ohne Pfad
    set "filename=%%~nF"
    set "extension=%%~xF"

     rem Ersetze "(" durch " " (Leerzeichen)
    set "filename=!filename: (= !"

    rem Entferne die schließende Klammer ")"
    set "filename=!filename:)=!"

    set "newname=!filename!!extension!"

    rem Falls sich der Name geändert hat, umbenennen
    if /I not "!oldname!"=="!newname!" (
        ren "!oldname!" "!newname!"
        echo Umbenannt: "!oldname!" ? "!newname!"
    )
)

echo Fertig! Alle passenden Dateien wurden umbenannt.
pause

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von g-force » 09.03.2025, 16:23

Damit kein Denkfehler auftritt:
Hier wurde einerseits versucht, das gesamte Prozedere über eine CMD abzuarbeiten (ohne Powershell).
Andererseits wurde es mit Powershell versucht - aber damit das Powershell-Script richtig gestartet wird, ist eine zusätzliche CMD nötig, die das PS-Script mit den richtigen Parametern & Berechtigungen startet.
Diese beiden CMD haben völlig unterschiedliche Bedeutung!

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Karthagos » 09.03.2025, 15:46

Hallo Holgi, g-force und DK 2000,
"da staunt der Laie und der Fachmann wundert sich" Toll, was Euer Gedankenaustausch da noch gebracht hat.
Die cmd ist natürlich noch angenehmer und einfacher als der Umweg über die Powershell-ps1.
Nur... warum muß ich den Ordnerpfad noch eingeben, wenn die umzuwandelnden Dateien und die cmd im selben Verzeichnis liegen sollen.
g-force hat geschrieben: 09.03.2025, 10:47 Du kannst ja mal diese CMD testen (muß im gleichen Ordner wie die Dateien liegen)
oder ist der Hinweis durch die nachfolgenden Bearbeitungen hinfällig geworden?
bzw. könnte man die batch so ändern, dass man den Pfad fest vorgeben kann um sich die nochmalige Eingabe zu sparen?

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Holgi » 09.03.2025, 13:25

ah super! Danke für den Hinweis. Wäre ich so nicht drauf gekommen. Aber das neue Script macht es jetzt richtig.

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von DK2000 » 09.03.2025, 13:23

OK, ja, mit der Batch hast Du nicht die Metadaten entfernt, sonder aus der .jpg eine Textdatei gemacht. Die .jpg existiert da nicht mehr.

Das dürfte an "echo Umbenannt: %%F -> !newname!" liegen. Damit schreibst Du den Inhalt der Variable %%F + " -" in die Datei !newname!.

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Holgi » 09.03.2025, 13:13

die sah so aus:

Code: Alles auswählen

@echo off
chcp 1252 >nul 
@echo off
setlocal enabledelayedexpansion

:: Benutzer nach Ordnerpfad fragen
set /p ordner="Geben Sie den vollständigen Pfad des Ordners ein (z.B. C:\Bilder): "

:: Überprüfen, ob der Ordner existiert
if not exist "%ordner%" (
    echo Der angegebene Ordner existiert nicht.
    pause
    exit /b
)

:: Temporären Backup-Ordner erstellen
mkdir "%ordner%\Backup" 2>nul

:: Alle passenden Dateien durchgehen
for %%F in ("%ordner%\* (*).jpg") do (
    set "oldname=%%~nxF"
    set "newname=%%~nxF"

    :: Klammern entfernen
    set "newname=!newname:(= !"
    set "newname=!newname:)=!"

    :: Prüfen, ob Datei bereits existiert
    if not exist "%ordner%\!newname!" (
        copy "%ordner%\%%F" "%ordner%\Backup\%%F" >nul
        move "%ordner%\%%F" "%ordner%\!newname!"
        echo Umbenannt: %%F -> !newname!
    ) else (
        echo Uebersprungen: !newname! existiert bereits.
    )
)

echo Fertig! Alle Dateien wurden umbenannt. Sicherung in Backup-Ordner.
pause
da kam so etwas bei raus:
Holgi 1.zip
habe jetzt aber doch noch eine Lösung auf Batch Basis gefunden:

Code: Alles auswählen

@echo off
chcp 1252 >nul 
setlocal enabledelayedexpansion

:: Benutzer gibt den Ordnerpfad ein
set /p "ordner=Geben Sie den Ordnerpfad ein: "

:: Überprüfen, ob der Ordner existiert
if not exist "%ordner%" (
    echo Fehler: Der angegebene Ordner existiert nicht.
    pause
    exit /b
)

cd /d "%ordner%"

:: Durchsuche alle JPG-Dateien mit Klammern im Namen
for %%F in ("* (*).jpg") do (
    set "oldname=%%F"

    rem Extrahiere den Dateinamen ohne Pfad
    set "filename=%%~nF"
    set "extension=%%~xF"

    rem Ersetze "(" durch " " (Leerzeichen)
    set "filename=!filename: (= !"

    rem Entferne die schließende Klammer ")"
    set "filename=!filename:)=!"

    set "newname=!filename!!extension!"

    rem Falls sich der Name geändert hat, umbenennen
    if /I not "!oldname!"=="!newname!" (
        ren "!oldname!" "!newname!"
        echo Umbenannt: "!oldname!" ? "!newname!"
    )
)

echo Fertig! Alle passenden Dateien wurden umbenannt.
pause

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von DK2000 » 09.03.2025, 12:06

Wie sah denn die Batch aus, welche Metadaten zerstört? Das kenne ich so noch nicht.

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von g-force » 09.03.2025, 11:53

Nein, habe ich nicht getestet. Daß dabei Metadaten zerstört werden, ist natürlich mehr als suboptimal.

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Holgi » 09.03.2025, 11:28

@g-force:
hast du dein Script einmal selbst getestet? bei mir funzt es nicht.
Darüberhinaus hatte ich selbst schon Versuche angestellt, das mit einfachem Batch statt Powershell hinzubekommen, jedoch werden die Metadateien bei .jpg durch das Umbenennen mit .cmd zerstört.
Also selbst wenn dann die Klammern wegwaren, waren die Bilder nicht mehr anzeigbar.

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Holgi » 09.03.2025, 11:15

hier noch mal wie es aussieht, ohne vor dem rename in Powershell:
Powershell fail.JPG
so mit vor dem rename in Powershell:
Powershell good.JPG
und so läuft es dann:
Powershell done.JPG

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von g-force » 09.03.2025, 10:47

Du kannst ja mal diese CMD testen (muß im gleichen Ordner wie die Dateien liegen):

Code: Alles auswählen

@echo off
setlocal enabledelayedexpansion

:: Den Ordner des Skripts verwenden
set "ordner=%~dp0"

:: Überprüfen, ob der Ordner existiert
if not exist "%ordner%" (
    echo Der Ordner existiert nicht. Skript wird beendet.
    exit /b
)

:: Dateien suchen, die dem Muster "(n)" entsprechen
for %%f in (%ordner%(*(*).*) ) do (
    set "file=%%~nxf"
    echo !file! | findstr /r "\([0-9]*\)" >nul
    if !errorlevel! equ 0 (
        :: Neuen Dateinamen generieren (Klammern entfernen)
        set "newName=!file:(= !"
        set "newName=!newName:) =!"
        
        :: Überprüfen, ob der neue Dateiname bereits existiert
        if not exist "%ordner%\!newName!" (
            ren "%%f" "!newName!"
            echo Umbenannt: %%f -> !newName!
        ) else (
            echo Uebersprungen: !newName! existiert bereits.
        )
    )
)

echo Fertig! Alle passenden Dateien wurden umbenannt.
endlocal

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Karthagos » 09.03.2025, 10:45

Hallo Holgi und g-force, habe das Ganze jetzt mit der batch-Lösung hinbekommen, so ist es perfekt.
Vielen Dank nochmals für Eure kompetente Hilfe :dankeschoen: und einen schönen Sonntag

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von Karthagos » 09.03.2025, 10:26

Hallo g-force, vielen Dank, mit dem Befehl "O:\Kopie\rename.ps1", also komplettem Pfadnamen hat es funktioniert.
Das Ergebnis weist allerdings zwei Leerzeichen vor der Zahl aus, ich vermute das muss man im Script ändern.
P.S. Die doppelten Leerzeichen habe ich über eine Scriptänderung wegbekommen

Außerdem werde ich mal die anderen Vorschläge von Holgi testen, über cmd wäre es mir natürlich am liebsten.

Re: mehrere Dateien im Explorer gleichzeitig umbenennen und Klammern entfernen

von g-force » 09.03.2025, 10:05

Das ".\" vor "rename.ps1" ist mMn nicht richtig bzw. überflüssig. Evtl. den kompletten Pfad eingeben.

Nach oben