Mit Batch rekursiv (Ordner) dateien mit einem String in Zielname.ext umbenennen
Ziel ist es die Cover in meinen unterordnern in folder.jpg umzubenennen.
Hallo Leute, ich hoffe ihr könnt mir helfen,
Aus einem anderem Forum bin ich hier drauf gestoßen.
MIt Hilfe der Batch und dieser reg ist es möglich per Rechtsklich auf eine jpg-datei daraus eine folder.jpg zu machen,
damit diese in der Miniaturansicht entsprechend angezeigt wird.
Zunächst der Code der Datei "C:\Batch\folderjpg.bat":
Code:
@echo off
setlocal
copy %1 "%~d1%~p1\folder.jpg"
Den Code in eine Textdatei kopieren und als "C:\Batch\folderjpg.bat" abspeichern.
Nun muss der Befehl noch in das Kontextmenü eingebracht werden. Dies geschieht mittels eines Registryeintrages:
Code:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\jpegfile\shell\CopyAsFolderJPG]
[HKEY_CLASSES_ROOT\jpegfile\shell\CopyAsFolderJPG\command]
@="\"C:\\Batch\\folderjpg.bat\" \"%1\""
Die Idee die mir da gekommen ist, ist die folgende:
Geht es nicht dass man eine Batch in das Kontextmenü der Ordner einbaut,
dieser startet dann eine Batch die rekursiv in allen Unterordnern nach jpg Dateien mit einem String wie etwa Front, oder Cover etc suchen.
Ist dieser String in einer Datei gefunden, dann wird diese Datei in folder.jpg umbenannt. Was ich damit vermeiden will ist, dass bilder von Cds oder
der Rückseite in folder.jpg umbenannt werden.
Was ich herausgefunden habe ist dass man einen neuen Eintrag für das Kontextmenü der Ordner so anlegt.
"
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Folder.jpgRenamer]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Folder.jpgRenamer\command]
@="\"C:\\Batches\\Folder.jpgRenamer\\Renamex2folder.jpg.bat\" \"%1\""
"
Da ich in Batch nicht wirklich die Leuchte bin würde
ich mich freuen, wenn mir hier jemand helfen könnte.
Danke euch...
robcomboy
Hallo Leute, ich hoffe ihr könnt mir helfen,
Aus einem anderem Forum bin ich hier drauf gestoßen.
MIt Hilfe der Batch und dieser reg ist es möglich per Rechtsklich auf eine jpg-datei daraus eine folder.jpg zu machen,
damit diese in der Miniaturansicht entsprechend angezeigt wird.
Zunächst der Code der Datei "C:\Batch\folderjpg.bat":
Code:
@echo off
setlocal
copy %1 "%~d1%~p1\folder.jpg"
Den Code in eine Textdatei kopieren und als "C:\Batch\folderjpg.bat" abspeichern.
Nun muss der Befehl noch in das Kontextmenü eingebracht werden. Dies geschieht mittels eines Registryeintrages:
Code:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\jpegfile\shell\CopyAsFolderJPG]
[HKEY_CLASSES_ROOT\jpegfile\shell\CopyAsFolderJPG\command]
@="\"C:\\Batch\\folderjpg.bat\" \"%1\""
Die Idee die mir da gekommen ist, ist die folgende:
Geht es nicht dass man eine Batch in das Kontextmenü der Ordner einbaut,
dieser startet dann eine Batch die rekursiv in allen Unterordnern nach jpg Dateien mit einem String wie etwa Front, oder Cover etc suchen.
Ist dieser String in einer Datei gefunden, dann wird diese Datei in folder.jpg umbenannt. Was ich damit vermeiden will ist, dass bilder von Cds oder
der Rückseite in folder.jpg umbenannt werden.
Was ich herausgefunden habe ist dass man einen neuen Eintrag für das Kontextmenü der Ordner so anlegt.
"
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Folder.jpgRenamer]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Folder.jpgRenamer\command]
@="\"C:\\Batches\\Folder.jpgRenamer\\Renamex2folder.jpg.bat\" \"%1\""
"
Da ich in Batch nicht wirklich die Leuchte bin würde
ich mich freuen, wenn mir hier jemand helfen könnte.
Danke euch...
robcomboy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92737
Url: https://administrator.de/forum/mit-batch-rekursiv-ordner-dateien-mit-einem-string-in-zielname-ext-umbenennen-92737.html
Ausgedruckt am: 23.12.2024 um 20:12 Uhr
12 Kommentare
Neuester Kommentar
Du kannst deine 3-zeilige Batch auch einfach in deinen SendTo-Ordner packen. Dann brauchst du nicht in der Registry rumzufummeln.
Hallo robcomboy!
Das sollte etwa so gehen (aus Sicherheitsgründen mit "copy" anstelle von "move"):
Kopiert wird nur, wenn es noch keine "folder.jpg" gibt. Die Liste möglicher Namensbestandteile kannst Du durch Hinzufügen weiterer "%~1\*Namensbestandteil*.jpg"-Angaben erweitern.
Grüße
bastla
Das sollte etwa so gehen (aus Sicherheitsgründen mit "copy" anstelle von "move"):
@echo off & setlocal
for /f "delims=" %%i in ('dir /b /s /a-d "%~1\*Front*.jpg" "%~1\*Cover*.jpg"') do if not exist "%%~dpi\folder.jpg" copy "%%i" "%%~dpi\folder.jpg">nul
Grüße
bastla
Hallo robcomboy!
Soferne Du den Batch noch nicht auf alle Ordner losgelassen hast, könntest Du einfach das "copy" durch ein "move" ersetzen.
Bereits kopierte Bilder sollten sich nachträglich etwa so löschen lassen:
Da sicherheitshalber ein Vergleich der Dateien erfolgt und nur bei Übereinstimmung gelöscht wird, könnte das tatsächlich etwas dauern ...
Grüße
bastla
Soferne Du den Batch noch nicht auf alle Ordner losgelassen hast, könntest Du einfach das "copy" durch ein "move" ersetzen.
Bereits kopierte Bilder sollten sich nachträglich etwa so löschen lassen:
@echo off & setlocal
for /f "delims=" %%i in ('dir /b /s "%~1\*bild*.jpg" "%~1\*cover*.jpg"') do fc /b "%%~dpi\folder.jpg" "%%i">nul && del "%%i"
Grüße
bastla
Hallo robcomboy!
Der Batch in meinem vorigen Post hat nur eine "Reparaturaufgabe" - er löscht die Originaldatei, indem er alle passenden Dateien des Ordners mit der "folder.jpg" vergleicht und bei Übereinstimmung entfernt.
Für zusätzliche Ordner, in denen eine "folder.jpg" durch Umbenennen erstellt werden soll, verwende die unten dargestellte Batch-Version.
Mit dieser Version wird der Dateityp je nach Ausgangsdatei angepasst und letztere auch gelöscht, allerdings kann es sein, dass dadurch sowohl eine "folder.jpg" als auch eine "folder.gif" entsteht.
Grüße
bastla
[Edit] Überzähligen "." vor "%%~xi" entfernt [/Edit]
Der Batch in meinem vorigen Post hat nur eine "Reparaturaufgabe" - er löscht die Originaldatei, indem er alle passenden Dateien des Ordners mit der "folder.jpg" vergleicht und bei Übereinstimmung entfernt.
Für zusätzliche Ordner, in denen eine "folder.jpg" durch Umbenennen erstellt werden soll, verwende die unten dargestellte Batch-Version.
Ich habe in meinen Ordnern noch ein paar front.gif 's gefunden,
könnte ich die auch so erweitern? "%~1\*Front*.gif" "%~1\*Cover*.gif"
Ja, allerdings würden diese ebenfalls auf "folder.jpg" umbenannt. Wenn eine "folder.gif" entstehen soll, dann so:könnte ich die auch so erweitern? "%~1\*Front*.gif" "%~1\*Cover*.gif"
@echo off & setlocal
for /f "delims=" %%i in ('dir /b /s /a-d "%~1\*Front*.jpg" "%~1\*Cover*.jpg" "%~1\*Front*.gif" "%~1\*Cover*.gif"') do if not exist "%%~dpi\folder%%~xi" move "%%i" "%%~dpi\folder%%~xi">nul
Grüße
bastla
[Edit] Überzähligen "." vor "%%~xi" entfernt [/Edit]
Hallo robcomboy!
Noch eine Anmerkung: In der ersten Fassung hatte ich vor "%%~xi" einen "." - ist jetzt korrigiert.
Grüße
bastla
Mit der Version werden gifs und jpg abgearbeitet, habe ich irgendwo ne andere ENdung muss ich dasshalt manuell machen....
Solltest Du etwa "%~1\*Front*.bmp" verwenden, würde daraus natürlich eine "folder.bmp" (da der Type mit "%%~xi" übernommen wird) - insofern ist die einzige manuelle Tätigkeit das Hinzufügen weiterer Dateinamenvorlagen.Noch eine Anmerkung: In der ersten Fassung hatte ich vor "%%~xi" einen "." - ist jetzt korrigiert.
Grüße
bastla