Film Serien/Staffel Verzeichnisse verschieben, aufräumen

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
maggot881
New Member
New Member
Posts: 1
Joined: 2016-05-12, 14:01 UTC

Film Serien/Staffel Verzeichnisse verschieben, aufräumen

Post by *maggot881 »

Hi an Alle

ich hab da mal ne Frage weil ich gerade meine Serien Ordner aufräumen möchte.

Meine Verzeichnis Struktur sieht momentan so aus:

Serienname Serie1 - Staffel 1
Serienname Serie1 - Staffel 2
Serienname Serie1 - Staffel 3
Serienname Serie1 - Staffel 4

Serienname Serie2 - Staffel 1
Serienname Serie2 - Staffel 2
Serienname Serie2 - Staffel 3
Serienname Serie2 - Staffel 4

usw

Ich hätte gerne die Verzeichnisse mit Staffel 2 bis 4 (oder auch mehr) immer in das Staffel 1 Verzeichnis Verschoben.

Gibt es dazu irgendwie ne Möglichkeit? Ich will nicht alle von Hand verschieben und ein Befehl der alle aufenmal verschiebt wäre dazu einfach Super.

Soll also dann so ausehen:

Serienname Serie1 - Staffel 1
-Serienname Serie1 - Staffel 2
-Serienname Serie1 - Staffel 3
-Serienname Serie1 - Staffel 4

Serienname Serie2 - Staffel 1
-Serienname Serie2 - Staffel 2
-Serienname Serie2 - Staffel 3
-Serienname Serie2 - Staffel 4

usw
User avatar
Stefan2
Power Member
Power Member
Posts: 4158
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: Move same-name Folder to Main folder

Post by *Stefan2 »

Hallo und willkommen, maggot881!

Probiers mal mit PowerShell.

- Backup deiner Daten erstellen
- PowerShell starten
- in deinen "Serien Ordner" wechseln
- folgendes eingeben (reinkopieren). Am Besten erstmal nur mit ein paar Serien ausprobieren.

Nur für Serien mit bis zu 9 Staffeln.
Staffel 1
...
Staffel 9




TEST:
Dir|Where{$_.PSIsContainer}|ForEach{$SN=$_.Name.substring($_.Name.Length -1,1);$Fld=$_.Name.Substring(0,$_.Name.Length-1)+'1';If($SN -ne 1){ "MOVE $_ TO $Fld" }}



WORKING COMMAND:
Dir|Where{$_.PSIsContainer}|ForEach{$SN=$_.Name.substring($_.Name.Length -1,1);$Fld=$_.Name.Substring(0,$_.Name.Length-1)+'1';If($SN -ne 1){MOVE $_ $Fld}}


(Die Kommandos bestehen jeweils aus EINER langen Zeile. (die neuste forumsdesignänderung ist nicht gut für lange codezeilen))
[face=timesnewroman]Dir|Where{$_.PSIsContainer}|ForEach{$SN=$_.Name.substring($_.Name.Length -1,1);$Fld=$_.Name.Substring(0,$_.Name.Length-1)+'1';If($SN -ne 1){MOVE $_ $Fld}}[/face]



- - -

Schritt-für-Schritt Erklärung:

Code: Select all


Get-ChildItem|

Where{$_.PSIsContainer}| #Nur Ordner

ForEach{		 #Für jeden Ordner....

	# letzte Ziffer als $StaffelNummer:
        #Serienname Serie1 - Staffel >1<
	$StaffelNummer = $_.Name.substring($_.Name.Length -1,1); 

	#Ordnername ohne letzte Ziffer plus die '1' für den Hauptordner:
        #>Serienname Serie1 - Staffel< + >1<
	$StaffelBaseFld = $_.Name.Substring(0,$_.Name.Length-1)+'1';

	# Wenn StaffelNummer <> 1, Dann verschiebe nach Ordner '1':
        #Serienname Serie1 - Staffel 2 >>>         #Serienname Serie1 - Staffel 1
	if($StaffelNummer -ne 1){"move $_ to $StaffelBaseFld"} 

}

VON:
..\Serienname Serie1 - Staffel 1
..\Serienname Serie1 - Staffel 2
..\Serienname Serie1 - Staffel 3
..\Serienname Serie1 - Staffel 4

ZU:
..\Serienname Serie1 - Staffel 1
..\Serienname Serie1 - Staffel 1\Serienname Serie1 - Staffel 2
..\Serienname Serie1 - Staffel 1\Serienname Serie1 - Staffel 3
..\Serienname Serie1 - Staffel 1\Serienname Serie1 - Staffel 4



Getestet mit PowerShell v2.0


HTH? Ohne Gelinggarantie.


.
User avatar
GammelBert
Member
Member
Posts: 109
Joined: 2007-02-21, 18:42 UTC
Location: Germany

Post by *GammelBert »

Wenn du dich mich RegExp auskennst, sollte das auch mit dem Multi-Rename tool und Suchen/Ersetzen klappen.
User avatar
Stefan2
Power Member
Power Member
Posts: 4158
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

GammelBert wrote:Wenn du dich mich RegExp auskennst, sollte das auch mit dem Multi-Rename tool und Suchen/Ersetzen klappen.
Klasse Idee GammelBert.

Poste doch mal, wie das aussehen könnte....




 
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

Stefan2 wrote:
GammelBert wrote:Wenn du dich mich RegExp auskennst, sollte das auch mit dem Multi-Rename tool und Suchen/Ersetzen klappen.
Klasse Idee GammelBert.

Poste doch mal, wie das aussehen könnte....
Was, es gibt immer noch Leute, die RegEx nicht im Schlaf beherrschen...? :twisted: :wink:

Search for:

Code: Select all

((.+ Staffel )0*([2-9]|\d\d+))$
Replace with:

Code: Select all

$2\1\\$1
Screenshot:
http://imgur.com/oqPxeTu

EDIT: Regex ein bisschen bereinigt und angepasst um auch mit vorangestellten Nullen und dem recht unwahrscheinlichen Fall klarzukommen, dass eine Serie einhundert oder mehr Staffeln hat. Der Screenshot zeigt aber immer noch den alten Regex, der nur Serien mit max. 99 Staffeln handhaben kann. Bin zu faul, einen neuen zu machen... ;) Den RegEx koennte man noch robuster machen, z.B. bezueglich doppelter Leerzeichen oder anderen Staffelbezeichnungen wie z.B. S1, S2,...; habe ich aber hier nicht gemacht um den RegEx leserlicher/verstaendlicher zu halten...
User avatar
Stefan2
Power Member
Power Member
Posts: 4158
Joined: 2007-09-13, 22:20 UTC
Location: Europa

MUT: Ordner per RegEx einsortieren

Post by *Stefan2 »

Gute Idee!

Vor allem das escapen der Ziffer 1 im Replacement hat mir gefehlt.


Meine Version:

Search: ^(.+?)(\s*)(0*[2-9]|\d{2,})$
Replace: $1$2\1\\$1$2$3

Bzw. zum gezielten Aufräumen (Leerzeichen vor Staffelnummer einfügen)
Replace: $1 \1\\$1 $3
[X]RegEx


Erklärung:
(.+?) > $1 > nicht gierig ein-oder-viele beliebiges Zeichen, gefolgt von
(\s*) > $2 > ein-oder-kein Leerzeichen, gefolgt von

(0*[2-9]|\d{2,}) > $3 > keine-oder-viele Ziffer Null,
gefolgt von *einer* Ziffer 2,3,4.. bis 9
ODER
gefolgt von zwei-oder-viele Ziffern (Zifferngruppe größer als '9')


Beispiel:

Code: Select all


VON:
Serienname Serie1 - Staffel 1\
Serienname Serie1 - Staffel 2\
Serienname Serie1 - Staffel3\
Serienname Serie1 - Staffel4\
Serienname Serie 3 - Staffel 1\
Serienname Serie 3 - Staffel 02\
Serienname Serie 3 - Staffel 11\
Serienname Serie 3 - Staffel 44\
Serienname Serie 6 - Staffel 2\
Serienname Serie 6 - Staffel 3\
Serienname Serie 6 - Staffel 21\
Serienname Serie 6 - Staffel 666\
Serienname Serie  7 - S6\
Serienname Serie  7 - S7\
Serienname Serie  7 - S8\

ZU:
+---Serienname Serie  7 - S 1
|   +---Serienname Serie  7 - S 6
|   +---Serienname Serie  7 - S 7
|   \---Serienname Serie  7 - S 8
+---Serienname Serie 3 - Staffel 1
|   +---Serienname Serie 3 - Staffel 02
|   +---Serienname Serie 3 - Staffel 11
|   \---Serienname Serie 3 - Staffel 44
+---Serienname Serie 6 - Staffel 1
|   +---Serienname Serie 6 - Staffel 2
|   +---Serienname Serie 6 - Staffel 21
|   +---Serienname Serie 6 - Staffel 3
|   \---Serienname Serie 6 - Staffel 666
\---Serienname Serie1 - Staffel 1
    +---Serienname Serie1 - Staffel 2
    +---Serienname Serie1 - Staffel 3
    \---Serienname Serie1 - Staffel 4




Gute Lösung.
Post Reply