Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit Batch rekursiv (Ordner) dateien mit einem String in Zielname.ext umbenennen

Frage Entwicklung Batch & Shell

Mitglied: robcomboy

robcomboy (Level 1) - Jetzt verbinden

23.07.2008, aktualisiert 18:42 Uhr, 12968 Aufrufe, 12 Kommentare

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
Mitglied: 67369
23.07.2008 um 15:05 Uhr
Du kannst deine 3-zeilige Batch auch einfach in deinen SendTo-Ordner packen. Dann brauchst du nicht in der Registry rumzufummeln.
Bitte warten ..
Mitglied: robcomboy
23.07.2008 um 15:10 Uhr
Das rumfummeln in der Registry ist an dieser Stelle nicht das Problem,
aber hast Recht, übers Send To geht das auch.
Bitte warten ..
Mitglied: bastla
23.07.2008 um 15:40 Uhr
Hallo robcomboy!

Das sollte etwa so gehen (aus Sicherheitsgründen mit "copy" anstelle von "move"):
01.
@echo off & setlocal 
02.
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
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
Bitte warten ..
Mitglied: robcomboy
23.07.2008 um 16:01 Uhr
Hallo Bastla

Danke für deine Batch, mit der funktioniert das wunderbar.
Ich hab noch gar nicht getestet ob man die auch ins SendTo reinschmeißen kann,
geht dass?
Wenn nicht, nicht schlimm, auf jeden Fall so eine sehr sehr große Arbeitserleichterung.

Vielen Vielen Dank,
Bitte warten ..
Mitglied: bastla
23.07.2008 um 16:04 Uhr
Hallo robcomboy!

Sollte in "SendTo" funktionieren.

Grüße
bastla
Bitte warten ..
Mitglied: robcomboy
23.07.2008 um 16:24 Uhr
Besteht noch die Möglichkeit die Quelldatei aus der die folder.jpg erstellt wurde zu löschen?
Ich denke dazu müsste ich jedesmal den Namen in ne variable geben um sie am ende zu löschen.

Geht das überhaupt oder macht das das ganze zu langsam?

Dank Dir...
Bitte warten ..
Mitglied: bastla
23.07.2008 um 17:00 Uhr
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:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in ('dir /b /s "%~1\*bild*.jpg" "%~1\*cover*.jpg"') do fc /b "%%~dpi\folder.jpg" "%%i">nul && del "%%i"
Da sicherheitshalber ein Vergleich der Dateien erfolgt und nur bei Übereinstimmung gelöscht wird, könnte das tatsächlich etwas dauern ...

Grüße
bastla
Bitte warten ..
Mitglied: robcomboy
23.07.2008 um 17:27 Uhr
Ich habe die Batch schon drüber laufen lassen.
Habe ich Dich richtig verstanden, die Version oben ist das selbe wie deine erste, nur mit denm Unterschied dass die nach dem erstellen der folder.jpg die Quelldatei löscht?

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"

....
Bitte warten ..
Mitglied: bastla
23.07.2008 um 17:55 Uhr
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.

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:
01.
@echo off & setlocal 
02.
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
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]
Bitte warten ..
Mitglied: robcomboy
23.07.2008 um 18:10 Uhr
Ah, OK nun haben wir ja allem Rechnung getragen, was da so kommen kann.
Wenn mir noch ein paar Strings einfallen kann ich die ja wie du oben angesprochen hast
hinzufügen.

Ich denke die wahrscheinlichkeit, dass ich in einem Ordner eine gif und eine jpg drin habe
ist sehr gering, wenn dem s sein sollte wird sich der Windows explorer für eine entscheiden, was denke ich mal kein Problem darstellt. Mit der Version werden gifs und jpg abgearbeitet, habe ich irgendwo ne andere ENdung muss ich dasshalt manuell machen....

Dank Dir coch mal richtig fett.....
Ich denke das hier wird auch für viele Andere interessant sein.

Viele Grüße
robcomboy
Bitte warten ..
Mitglied: bastla
23.07.2008 um 18:39 Uhr
Hallo robcomboy!

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
Bitte warten ..
Mitglied: robcomboy
23.07.2008 um 18:42 Uhr
Oh, super,
also universell anwendbar.
Genial....

Vielen Dank noch mal!!!!

Gruß
robcomboy
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...