MUT: verschiebe Teile, schreibe manche davon GROß, usw

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

MUT: verschiebe Teile, schreibe manche davon GROß, usw

Post by *heinz57g »

Spezialist fuer Mehrfach-Umbenenn-Tool gesucht

hallo, gibts hier im forum, oder einer sektion, einen spezialisten fuer das mehrfach-umbenenn-tool (multi-rename) ? ich versuche seit tagen, die namen meiner in einem bestimmten format runtergeladen TV-filme auf ein passendes format fuer den rest meiner sammlung zu bringen, kriege aber nur ''salat'' hin - beschaemend.

wo finde ich jemanden der mir helfen koennte?

gruesse - heinz -
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Wie stelle ich eine Anfrage im Forum?

Post by *Stefan2 »

Hallo Heinz,

verkehrter Ansatz.


Erstelle einen Thread mit einem aussagekräftigen Titel, der dein Problem möglichst genau beschreibt.
ZB: "MUT: Ersetze alle X zu Ys"


Poste ein paar Vorher/Nachher Beispiele und erkläre kurz worauf du hinaus willst.

VORHER so:

NACHHER gewünscht so:

REGEL: Finde alle "X", und ....

GRUND: Um meine Sammlung....



Dann werden dir sicher einige bald darauf mit Vorschlägen und Lösungen antworten.



Suche mal im Forum nach MUT: und MRT:, da wirst du schon einiges finden.






 
Zendo
Power Member
Power Member
Posts: 640
Joined: 2006-10-26, 11:16 UTC

Post by *Zendo »

Hallo Heinz,
Stefan hat schon alles gesagt...

Hier noch ein Tip,vielleicht ist das eine oder andere schon dabei.

Gib mal bitte unter dem Link "MUT" ohne Anführungszeichen ein.

http://ghisler.ch/board/search.php?mode=results&sid=f61822c0960a68f8804c2f0f99422129
Last edited by Zendo on 2016-03-11, 15:38 UTC, edited 1 time in total.
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

MUT problem - zumindest fuer mich

Post by *heinz57g »

stefan und WINXP, erstmal danke. mit dieser einfuehrenden mssg wollt ich ansich nur mal wissen,
obs sowas (so jemanden) hier wirklich gibt, oder ob ich in ein unterforum muss - oder ob ich mich
einfach laecherlich damit mache.

also, ich versuch mal so deutlich wie moeglich zu sein:

2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4

soll rauskommen als:

ARD160217_0730TheSantaFeTrail.mp4

der reihe nach:

- datum und zeit geaendert auf JJMMDD_hhmm

- _Name-Des-Films_, hat immer verschiedenen laenge, aber immer
zwischen _ _ , soll rauskommen als ' NameDesFilms '

- _ard_ ist der sender, kann bis zu 6 buchstaben/ziffern sein,
soll in grossbuchstaben rauskommen ' ARD '

- _hq_.mp4 kann manchmal _hd_.mp4 oder nq_.mp4 heissen, dass
hq hd nq soll ganz wegfallen, das .mp4 muss natuerlich bleiben

- wichtig: das datum der file muss das orginaldatum bleiben

und das ganze dann in der sequenz wie oben.

puh ... lasst mich wissen wenn dies nicht klar ist.

gruesse - heinz -
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

MUT: tausche Teile und teils Großschreiben

Post by *Stefan2 »

Hallo Heinz,

du hast den ersten Punkt übersehen:
Stefan2 wrote:Erstelle einen Thread mit einem aussagekräftigen Titel, der dein Problem möglichst genau beschreibt.
ZB: "MUT: Ersetze alle X zu Ys"
:roll:


- - -

Heinz:
> vorher:
> 2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4
> nachher:
> ARD160217_0730TheSantaFeTrail.mp4




Dein Problem ist mit dem eingebauten Umbenenner nur unzureichend zu lösen.

1. Ich kann den Sender nicht separat in Großbuchstaben setzen.(EDIT: da nach dem Sender erstmal nur Zahlen kommen, könnte man pauschal die ersten, sagen wir 13, Zeichen "groß schreiben" lassen, um somit von ARD bis ProSieben alles abzudecken?)
2. Die Bindestriche im Filmtitel kann ich nicht raus nehmen, da in der Uhrzeit ebenfalls ein Bindestrich ist. (EDIT: Ups, da soll ja gar kein Bindestrich in der Uhrzeit sein. Da bin ich durcheinander gekommen.)
3. Wenn wir eine Datei ändern, ändert sich auch der Zeitstempel.
Das kannst du nur über ein Skript lösen, oder über einen skriptierbaren Umbennener wie zB den4b ReNamer.
(Andere Ideen?)


Annäherungsweise könntest du das hier mal ausprobieren:

SCHRITT 1:

VON:
2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4
ZU:
ard160217_07-30The-Santa-Fe-Trail.mp4


MUT
Suche: 20(.+)-(.+)-(.+)_(.+)_(.+)_(.+)_(.+)
Ersetze: $6$1$2$3_$4$5
[_]E
[X]RegEx



SCHRITT 2: (kleiner Pfeil im MUT, unten neben Start)

VON:
ard160217_07-30The-Santa-Fe-Trail.mp4
ZU:
ARD160217_0730TheSantaFeTrail.mp4

MUT
Dateimaske: [N1-13][n][N14-]
Suche: -
Ersetze: <Leer>





Für das beibehalten des ursprünglichen Zeitstempel brauchen wir dann doch ein Skript. Oder? Andere Ideen?........




- - -


Erklärungsversuch

Code: Select all

2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4

20(.+) | (.+) | (.+) | (.+)  | (.+)               | (.+) | .+
   1   | 2    |   3  |   4   |    5               |  6   |   
2016   | 02   | 17   | 07-30 | The-Santa-Fe-Trail | ard  | hq.mp4


ard160217_07-30The-Santa-Fe-Trail.mp4
$6$1$2$3_$4$5



 Editiert, siehe oben in blauer Schrift.
Last edited by Stefan2 on 2016-03-12, 08:44 UTC, edited 2 times in total.
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1050
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Die Bindestriche könnte man noch filtern, aber schön ist was anderes:

Code: Select all

\d{2}(\d{2})-(\d{2})-(\d{2})_(\d{2})-(\d{2})_([^-]*)-*([^-]*)-*([^-]*)-*([^-]*)-*([^-]*)-*([^-]*)-*([^-]*)-*([^-]*)_(.+)_(hq|hd|nq)

$14$1$2$3_$4$5$6$7$8$9$10$11$12$13
So oder so wird man mehrere Durchläufe benötigen oder gleich nen richtiges Script.

In PowerShell zum Testen:

Code: Select all

cls

$dateiName = '2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4'

$regEx01 = '(?<datum>\d{4}-\d{2}-\d{2}_\d{2}-\d{2})_(?<titel>.+)_(?<sender>.+)_(?<quali>hq|hd|nq)\.(?<ext>.+)'

$doesMatch = $dateiName -match $regEx01

if($doesMatch)
{
    $Matches
    $finalSender = $Matches["sender"].ToUpper()
    $finalDatum  = $Matches["datum"].Substring(2).Replace('-','')
    $finalTitel  = $Matches["titel"].Replace('-','')
    $finalExt    = $Matches["ext"]
    $finalName   = $finalSender + $finalDatum + $finalTitel + '.' + $finalExt

    echo "`n"
    echo "Ergebnis:`n"
    echo $finalName
}
else
{
    echo "Kein Match!"
}
Falls neu in PowerShell: Als "RegExTest.ps1" oä speichern, in PowerShell ISE öffnen und $dateiName durch mehrere Beispielnamen ersetzen (F5 zum Ausführen).

Zur ursprünglichen Frage: MRT Aufgaben sind für einige Forumsmitglieder wie für andere Leute Sudokus oder Kreuzworträtsel ;). Stefan2 hat die Anforderungen sehr schön formuliert.
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: ForEachSelFileDo_SwapParts-AndRename.ps1

Post by *Stefan2 »

Gutes Skript, ZoSTeR

PoSh ist schon elegant. Daher, anstatt eines VBScript hier mal wieder ein PoSh Skript, basierend auf ZoSTeRs' Skript:

# Als plain Textdatei mit Namen "ForEachSelFileDo_SwapParts-AndRename.ps1" im TC-Ordner speichern.
# Total Commander Button:
# CMD : PowerShell -NoExit
# PARAM: "%Commander_Path%\ForEachSelFileDo_SwapParts-AndRename.ps1" "%L"



UPDATE:
Das Skript erstellt jetzt eine "_TotalCommander_MUT-NeueDateinamen.TXT" Datei für die "Namen aus Datei laden" ("Load names from file") Funktion.


Verwendung:
- Einige Dateien markieren,
- dann auf den Button klicken um das Skript auszuführen.
- Die Dateien nochmals markieren (Hier könnte man noch mittels SendMessage "Markierung aus Datei laden" ausführen,....wenn ich mal Zeit habe.)
- Das Multi Umbenenn Tool öffnen
- Die "_TotalCommander_MUT-NeueDateinamen.TXT" Datei in das MUT laden.
(Siehe Hilfe "Dialogbox - Mehrfach-Umbenenn-Tool" >>> "Oeffnet ein Kontextmenü mit folgenden Optionen:")
- Das Ergebnis kontrollieren.
- Umbenennen.

("Dateidatum beibehalten" fehlt noch im Skript)





ForEachSelFileDo_SwapParts-AndRename.ps1

Code: Select all

# ################################################################################################ VorTESTs:
#   Heinz:
#   > vorher:
#   > 2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4
#   > nachher:
#   > ARD160217_0730TheSantaFeTrail.mp4 
# TEST:
#dateiName   '2016-02-17           _07-30        _ The-Santa-Fe-Trail  _ard   _hq  .mp4' 
#RE        = '(\d{4}-\d{2}-\d{2})(_\d{2}-\d{2})  _(.+)                 _(.+)  _(.+)\.(.+)'
#backref's             1                2           3                     4     5     6 
# ################################################################################################ WORK:
#
#   PowerShell-Skript für TotalCommander by ZoSTeR, Fri Mar 11, 2016 17:11 
#   Ändere Position von bestimmten Stellen im Dateinamen und benenne die Datei damit um.
#   TC Forum: http://ghisler.ch/board/viewtopic.php?p=305981#305981
#  
#   Als plain Textdatei mit Namen "ForEachSelFileDo_SwapParts-AndRename.ps1" im TC-Ordner speichern.
#   Erstelle dann einen Total Commander Button:
#   CMD  : PowerShell -NoExit
#   PARAM: "%Commander_Path%\ForEachSelFileDo_SwapParts-AndRename.ps1" "%L"
#
# ------------------------------------------------------------------------
$RE       = '(\d{4}-\d{2}-\d{2})(_\d{2}-\d{2})_(.+)_(.+)_(.+)\.(.+)'
$FileList = $args[0]
TYPE $FileList | ForEach{ 
    $OrgName = split-path $_ -leaf
    if($OrgName -match $RE){
        #$Matches
        $Sender  =  $Matches[4].ToUpper()
        $Datum   = ($Matches[1].Substring(2) + $Matches[2]).Replace('-','')
        $Titel   =  $Matches[3].Replace('-','')
        $Ext     =  $Matches[6]
        $NewName =  $Sender + $Datum + $Titel + '.' + $Ext
        $OUT    += "$OrgName >>> $NewName`n"
        $UNDO   += "REN ""$NewName"" ""$OrgName""`r`n"
        $MUT    += "$NewName`r`n"
        # Datei umbenennen (Entferne "#Schutz# " zum Scharfschalten):
        #Schutz# Ren $_ $NewName
    }
}
# Schreibe UNDO-Batch
# $UNDO | Out-File -Enc ASCII _UNDO.txt_TotalCommanderPowerShellSkript.cmd
#
# Schreibe Textdatei für TCs' MUT Funktion "Namen aus Datei laden..." :
$MUT  | Out-File -Enc ASCII _TotalCommander_MUT-NeueDateinamen.TXT
# ################################################################################################ End  WORK
# Test Ausgabe:
# $OUT 
# Beispiel Ausgabe (Alter Name >>> Neuer Name):
#   2016-02-17_07-30_The-Santa-Fe-Trail_ard_hq.mp4 >>> ARD160217_0730TheSantaFeTrail.mp4
#   2016-03-01_12-30_Die-Glorreichen-Sieben _Sat1_hq4d.mp4 >>> SAT1160301_1230DieGlorreichenSieben .mp4
#   2016-03-27_16-00_The-Last-Coral-Walk_ProSieben_hqxx.mp4 >>> PROSIEBEN160327_1600TheLastCoralWalk.mp4
#
# Wenn das Ergebnis so passt, entferne den "#Schutz# " vor REN zum tatsächlichen Umbenennen.








>>MRT Aufgaben sind für einige Forumsmitglieder wie für andere Leute Sudokus oder Kreuzworträtsel
Ich glaube, dass ist ein sehr passender Vergleich.
>>Stefan2 hat die Anforderungen sehr schön formuliert.
Ja? Danke schön.
 
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

Der Vollständigkeit halber das Ganze auch noch ohne Skript in zwei Durchgängen,
wenn man vorerst auf die Großschreibung verzichten kann:

Erster Schritt im MRT:
Suchen nach: -
Ersetzen durch: <leer lassen>
sonst Standardeinstellungen

Zweiter Schritt:
Suchen nach:

Code: Select all

\d{2}(.+)_(.+)_(.+)_[^\.]+
Ersetzen durch:

Code: Select all

$3$1$2
[x] RegEx
sonst Standardeinstellungen

Jetzt könnte man noch manuell in Großschreibung ändern, muss aber nach Zeichenlänge sortiert vorgehen.
Bei drei Zeichen:
Umbenennmaske: Dateiname

Code: Select all

[U][N1-3][n][N4-]
sonst Standardeinstellungen


Stefan2 wrote:Das kannst du nur über ein Skript lösen...
ZoSTeR wrote:...oder gleich nen richtiges Script
Die Skripte sind sauber und haben natürlich ihre Daseinsberechtigung.
Trotzdem muss ich bei solchen Aussagen schmunzeln.
Ich unterrichte gelegentlich, und habe festgestellt, dass es wesentlich mehr bringt
allgemeine Prinzipien wie RegEx beizubringen, als irgendeine grad zur Verfügung stehende (Skript-)Sprache zu lehren.
Also im obigen Fall dass man in mehreren Schritten umbenennt, als ein Skript zu schreiben (oder in diesem Fall zu kopieren),
was man nur einmal für diese Aufgabe benutzt, und sonst nie wieder anfasst.
Die meisten Anwender sind gegen die Kommandozeile allergisch, bzw. sehen sprichwörtlich schwarz ;)
TC plugins: PCREsearch and RegXtract
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

Post by *heinz57g »

moment mal, wollt ihr mich ins krankenhaus befoerdern? jetz bin ich erstmal baff - und muss mich einlesen.
ja, auf die grossschreibung vom sender kann ich verzichten, oder sogar manuell aendern.

und allergisch bin ich gegen nichts, nicht mal gegen die kommandozeile - aber verstehen tu ichs (noch) nicht.

jetzt brummt der kopf. trotzdem kommt noch ein grosses DANKE raus ...

und: '' ... Wenn wir eine Datei ändern, ändert sich auch der Zeitstempel ... '' - das scheint aber nicht zu stimmen.
ich hatte vorher eine (wesentlich einfachere) umbenennung immer mit TC durchgefuehrt, und der zeitstempel blieb
immer wie auf dem orginal.

hab gerade mal stefans erste methode probiert, da belibt der zeitstempel auch korrekt.

gruesse - heinz -
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

Post by *heinz57g »

stefan, habs mehrfach probiert, mit dem re-load pfeil, oder mit kompletten neu-laden, aber dein '' [N1-13][n][N14-] '' tut
bei mir leider garnichts, weder den '-' entfernen, noch den sender auf GROSS veraendern.

den - entfernen ist ja einfach: SUCHE: '-', auf 'LEER', damit ist er weg, und ich habe ' ard160217_0730TheSantaFeTrail.mp4 '
- damit kann ich erstmal leben. zumal die leute bei YOUTV (da kommt das ganze her) gesagt haben, dass sie noch am
rumschrauben sind, und evtl andere dateimasken einfuehren werden.

gruesse, und danke dass ich mal das ganze wochenende was zu lesen und denken habe.

zeitstempel: bleibt ganz sicher korrekt.

- heinz -
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

Post by *heinz57g »

ich hoffe ich krieg jetz nicht eins auf den kopf, aber ich hab mirs mal einfach und primitiv, und fuer mich
verstaendlich hingebastelt:

run1 ist stefans erster teil, damit erhalte ich erstmal ' ard160217_07-30The-Santa-Fe-Trail.mp4 '!

run2 ist dann meine SUCHE: ' -|3sat|ard|arte|br|ndr|hr|phoenix|swr|wdr '.
mit ERSETZE: ' |3SAT|ARD|ARTE|BR|NDR|HR|PHOENIX|SWR|WDR '

schon ist das - weg, und ich bin bei ' ARD160217_0730TheSantaFeTrail.mp4 ' - im prinzip genau
was ich wollte. die senderliste kann ich dann ja mal ergaenzen, je nachdem was dazu kommt.

aber weiterdenken werd ich schon ...

gruesse, und ein schoenes wochenende - heinz -
User avatar
Stefan2
Power Member
Power Member
Posts: 4281
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

 

Gut gemacht, Heinz. Weiter so!







 
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

heinz57g,
heinz57g wrote:und: '' ... Wenn wir eine Datei ändern, ändert sich auch der Zeitstempel ... '' - das scheint aber nicht zu stimmen.
ich hatte vorher eine (wesentlich einfachere) umbenennung immer mit TC durchgefuehrt, und der zeitstempel blieb immer wie auf dem orginal.

hab gerade mal stefans erste methode probiert, da belibt der zeitstempel auch korrekt.
Dateinamen ändern und Datei ändern sind zwei verschiedene Dinge.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

Post by *heinz57g »

>> Dateinamen ändern und Datei ändern sind zwei verschiedene Dinge

absolut richtig. aber wir haben hier alle ja immer nur von einer UMBENENNUNG des dateinamens
gesprochen - den inhalt eines filmclips mit TC zu aendern waere ein kleines wunder. ich haette da
schon ein paar vorschlaege: DRACULA in eine liebesgeschichte umzuwandeln ...

gruesse - heinz -
heinz57g
Junior Member
Junior Member
Posts: 59
Joined: 2004-04-23, 07:46 UTC

Post by *heinz57g »

noch ne kleine aenderung:

- -|3sat|ard|arte|br|ndr|hr|phoenix|swr|wdr

hab ich geaendert in ...

- -|3sat1|ard1|arte1|br1|ndr1|hr1|phoenix1|swr1|wdr1

und das ERSETZEN dann durch ...

- |3SAT1|ARD1|ARTE1|BR1|NDR1|HR1|PHOENIX1|SWR1|WDR1

grund; speziell die kurzen sender-namen (BR, HR, usw) haetten oft innerhalb von den sendungs-titeln die
grossschreibung eingebaut, so wurde zb ' Erbrecht ' zu 'ErBRecht ' - jetzt ist das besser, und nur noch in
ganz wenigen faellen manuell nachzubearbeiten.

mache ich sinn?

gruesse - heinz -
Post Reply