MUT: Datei nach Ordner benennen und pro Ordner Nummerieren

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Mirach
Junior Member
Junior Member
Posts: 3
Joined: 2014-02-09, 22:00 UTC

MUT: Datei nach Ordner benennen und pro Ordner Nummerieren

Post by *Mirach »

Mehrfach-Umbenenn-Tool: nach Ordner benennen und Nummerieren


Hallo,

ich werde gerade verrückt, weil ich ein Program suche, dass folgende Umbennung von Dateien ermöglicht.

In den Ordnern:

Ordner 1
Ordner 2
Ordner 3
.
.
.
Ordner 1000

möchte ich die darin enthalten Dateien (es gibt keine weiteren Unterordner darin) nach den Namen der jeweiligen Ordner, immer mit 0 für jeden Ornder beginnen, umbennen. (Eine Selektion nach Dateitypen
wäre schön.)

Es gibt viele Dateiumbennungstools. Am weitesten bin ich mit dem eigentlich recht einfachen Vorhaben mit dem Bulk-Renamer gekommen,
Der ärgert mich aber, da er offensichtlich mit so vielen Dateien auf einmal nicht klar kommt. :?
Bei dem Probieren bin ich bei meinem TC auf das Plugin beim Umbennungs-Tool gestoßen. Geht das vielleicht damit ?

(Es sind so viele Ordner, dass ich das nicht von Hand machen will/kann.)
User avatar
Dalai
Power Member
Power Member
Posts: 9393
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Ich hab nicht so ganz verstanden, was du willst, daher wäre ein konkretes Beispiel hilfreich. Kann es sein, dass du die Dateien in jedem Ordner durchnummerieren willst und dabei gleichzeitig den Namen des Ordners mit in den Dateinamen aufnehmen willst? Konkretes Beispiel des Ergebnisses einer Umbenennaktion:

Ordner 1 - Bild001.jpg
Ordner 1 - Bild002.jpg
usw.
und für die weiteren Ordner dann die Nummerierung wieder von vorn beginnend
Ordner 3 - Bild001.jpg
Ordner 3 - Bild002.jpg
usw.

Falls dem so ist, hilft die Hilfe des MUT (Multiumbenenntool) des TC. Die Verwendung von [P] wird dir zumindest den Verzeichnisnamen bringen. Was TC AFAIK auch in der neuesten Version noch nicht kann, ist, die Nummerierung je Verzeichnis von vorn beginnen zu lassen. Da das aber schon mehrfach hier im Forum diskutiert wurde, schlage ich vor, du nutzt die Suchfunktion, um im Verlauf der Diskussionen genannte Alternativprogramme zu finden.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Mirach
Junior Member
Junior Member
Posts: 3
Joined: 2014-02-09, 22:00 UTC

Post by *Mirach »

Danke Dalai, für deine Antwort. Genau das ist mein Wunsch, und wie es aussieht, geht das mit dem in jeden Ornder neu Hochzählen leider noch nicht. Es hätte ja sein können, dass es einen Trick gibt, daher hauptsächlich meine Frage.
Hoffentlich kommt bald diese Erweiterung. Wo kann ich die Bitte äußern ? :wink: Dann müsste ich, was die Dateisortierung und -archivierung anbelangt, an diesem Punkt nicht mehr fremd gehen.
Durch die Möglichkeit den Ordnernamen schon in die Dateien zu bekommen, kann ich mir mit anderen simplen Renaming Tools u. U. den Rest machen.
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: Für jeden Ordner Zähler bei Null anfangen

Post by *Stefan2 »

Für jeden Ordner Dateien umbenennen Zähler bei Null anfangen


Man kann das auch mit Windows-Bordmitteln machen, hier mit Powershell.

1 - Erstelle ein Backup aller deiner Ordner
2 - öffne eine PowerShell Konsole
3 - navigiere in den Ordner, in dem alle diese Ordner1 bis Ordner1000 liegen
4 - führe diesen PowerShell Befehl aus:


Als Einzeiler (siehe Ende des Posts für ein Update):

Get-ChildItem | Where-Object {$_.PSISContainer -eq $true}| Foreach-Object {$ParentFolderName=$_.Name; cd $_.FullName; $count=0; Get-ChildItem} | Foreach-Object {$count++; Rename-Item -Path $_.FullName -NewName ( ("$ParentFolderName - " + $_.BaseName) + ("_{0:D4}" -f $count)+ ($_.Extension))}; cd..

(wobei "cd.." eigentlich offiziell als "Set-Location irgendwas" geschrieben wird)




Oder umgebrochen, Zeile für Zeile:

Get-ChildItem |
Where-Object {$_.PSISContainer -eq $true}|
Foreach-Object {$ParentFolderName=$_.Name; cd $_.FullName; $count=0; Get-ChildItem} |
Foreach-Object {$count++; Rename-Item -Path $_.FullName -NewName ( ("$ParentFolderName - " + $_.BaseName) + ("_{0:D4}" -f $count)+ ($_.Extension))}; cd..







Oder in Kurzfassung, mit PowerShell Aliase und kurzen Variablenamen:

dir | ?{$_.PSISContainer -eq $true}| %{$PFN=$_.Name; cd $_.FullName; $c=0; dir} | %{$c++; ren -Path $_.FullName -NewName ( ("$PFN - " + $_.BaseName) + ("_{0:D4}" -f $c) + ($_.Extension))}; cd..





Erklärung:

** Für jeden Unterordner (hier wirklich nur Ordner) im Hauptordner:
** merken wir uns den Namen des Unterordners in $PFN
** wechseln wir in diesen Unterordner mit CD
** setzen den $counter jeweils wieder auf 0
** listen den Inhalt des Unterordners auf (hier alle Dateien und eventuelle Unterordner)
** für jede Datei (oder Ordner) im Unterordner, benennen wir diese Datei um:
Hinter -NewName wird der neue Name zusammengebaut:
ParentFolderName + ' - ' + Originalname + 4-stelliger Zähler, generiert aus $counter + Originaldateierweiterung.
(dies ist natürlich anpassbar...., Und, mit der Klammersetzung habe ich hier noch gekämpft, möglicherweise kann man diesen Bereich hübscher zusammenbauen)




HTH?

UND IMMER VORHER EIN BACKUP MACHEN


--- EDIT:

Update, das Skript etwas bereinigt:

Get-ChildItem | Where-Object {$_.PSISContainer -eq $true}|
Foreach-Object {$ParentFolderName=$_.Name; cd $_.FullName; $count=0; Get-ChildItem} |
Foreach-Object {$count++; Rename-Item -Path $_.FullName -NewName ("$ParentFolderName - " + $_.BaseName + "_{0:D4}" -f $count + $_.Extension)}; cd..

---

Und eine Version ohne "Parent folder name":

Get-ChildItem | Where-Object {$_.PSISContainer -eq $true}|
Foreach-Object {cd $_.FullName; $count=0; Get-ChildItem} |
Foreach-Object {$count++; Rename-Item -Path $_.FullName -NewName ($_.BaseName + "_{0:D4}" -f $count + $_.Extension)}; cd..



 
Last edited by Stefan2 on 2017-07-21, 13:23 UTC, edited 1 time in total.
Mirach
Junior Member
Junior Member
Posts: 3
Joined: 2014-02-09, 22:00 UTC

Post by *Mirach »

Danke Stefan !
Post Reply