Jump to content

Dateien mit gleichen Buchstaben am Anfang in neu zu erzeugenden Ordner verschieben


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Wenn's quasi ne einmalige Aktion sein soll, finde ich Damians Vorschlag in Deinem Fall nicht schlecht.  ;-)  ... geht eventuell schneller und ist am Ende weniger Arbeit.

 

vor 22 Minuten schrieb LEDZEPPELIN:

Also die Dateien sehen fast alle so aus wie oben beschrieben 

Ja, genau da ist das Problem - "... sehen fast alle so aus ..." ;-) 

 

vor 24 Minuten schrieb LEDZEPPELIN:

(und die paar auf die es nicht passt würden doch ignoriert oder?)

Das kommt darauf an - eventuell eben nicht. 

 

N' Vorschlag zu Güte ... und weil bald Weihnachten ist:

 

Wenn es nicht gerade Pornos sind und auch sonst keine irgendwie kompromittierenden Sachen und Du bereit wärst, die Informationen hier mit uns zu teilen, dann poste doch hier einfach mal ne *.txt-Datei mit der kompletten Datei-Liste und wir können versuchen was zusammenzuzimmern.  ;-)

 

vor 30 Minuten schrieb LEDZEPPELIN:

Das sieht dann in etwas so aus oder?

 

> ('Name.ts').split(".-")[0]
Name

> ('Name.mkv').split(".-")[0]
Name
> ('Name-fanart.jpg').split(".-")[0]
Name

> ('Name-poster.jpg').split(".-")[0]
Name

 

Code als Code formatieren bitte! ;-)   ....  und wenn Du wissen möchtest, ob eine Idee von Dir funktioniert, kannst Du's einfach testen.  ... nicht gleich Kopieren oder Verschieben, sondern erstmal nur die Ergebnisse ausgeben lassen   ;-)  

Link zu diesem Kommentar

Danach habe ich ja gesucht.

Aber alle Tools die ich finden konnte

wie File to folder oder Advanced Renamer oder dropit! kriegen das nicht hin wegen der unterschiedlichen Dateinamen oder benennen um oder können keine neuen Ordner generieren.

 

Das Progamm von Dir sieht sehr kompliziert aus und scheint uf den ersten Blick auch primär fürs umbennen zu sein.

 

Bist Du sicher das es für meine Anforderung richtig ist?

 

 

 

Link zu diesem Kommentar
vor 12 Minuten schrieb LEDZEPPELIN:

Das Progamm von Dir sieht sehr kompliziert aus und scheint uf den ersten Blick auch primär fürs umbennen zu sein.

Deine Aufgabe ist ja auch sehr komplex. Mit regulären Ausdrücken (regular Expressions) kann man sehr komplexe Auswahl-Kriterien erzeugen und es wäre sehr wahrscheinlich noch ein teilweise manueller Prozess. Aber er macht die Sache leichter.

Link zu diesem Kommentar
vor 24 Minuten schrieb LEDZEPPELIN:

Das Progamm von Dir sieht sehr kompliziert aus und scheint uf den ersten Blick auch primär fürs umbennen zu sein.

Ja, das Tool ist primär zum massenhaften Umbenennen gedacht. Recht komplex, aber die Suchfunktion ist für Dich hilfreich. Das Teil erzeugt auch selber noch nicht existierende Zielordner.

 

BTW: In der bisher aufgelaufenen Zeit hättest Du das große Verschieben mit einem hilfreichen Tool und etwas Handarbeit schon locker geschafft. Ein Script für Alles ist natürlich "magic", aber Zauberstäbe sind heutzutage schwer zu bekommen. ;-)

Link zu diesem Kommentar

Ich seh da ein klares Muster mit *.mkv als "Master-Namensteil"... Müßte man nur in ein nach Länge sortiertes Array werfen und alles wird gut :-) Bleibt dann natürlich was über, weil die 3 Files "Bayern München (2020)" kein mkv dazu haben, aber Leichen kannst Du sicher manuell bereinigen. Oder man nimmt *.nfo als Master, dann klappt auch das. Und alle zusätzlichen Dateien dazu heißen ja immer *-<irgendwas>.

 

@Damian Zauberstab ist doch kein Problem... https://esge-zauberstab.de/

bearbeitet von daabm
Link zu diesem Kommentar
vor 25 Minuten schrieb LEDZEPPELIN:

Vielen vielen Dank fürs Angebot.

Im Anhang ein Liste.txt Datei eines Ordners in dem sich nur noch die Dateiformate wie oben beschrieben befinden.

Die anderen Typen habe ich rauskopiert.

Da kümmere ich mich manuell drum.

 

Ist nur ein Test Ordner. In der Realität reden wir von ca. 6000 Dateien.

Liste.txt 764 B · 3 downloads

Mir geht's da wie Martin - ich sehe auch ein Muster.  Wir suchen also nach *,mkv-Dateien, und den im Namen dazu passenden *.nfo-Dateien und im Namen dazu passenden *.jpg-Dateien, die aber noch fanart und poster angehängt haben.

Wenn die Dateinamen wirklich diesem Schema entsprechen, sollte der folgende Schnipsel, das tun, was Du willst  (also das, von dem ich glaube, dass Du es willst)  ....

$StartFolder = 'D:\Test'
$TargetFolder = 'D:\Archiv'
Get-ChildItem -Path $StartFolder -File -Filter *.mkv |
ForEach-Object {
    $BaseName = $_.BaseName
    $Destination = Join-Path -Path $TargetFolder -ChildPath $BaseName
    if (-not(Test-Path -Path $Destination -PathType Container)) {
        New-Item -Path $Destination -ItemType Directory | Out-Null
    }
    Move-Item -Path $_.FullName -Destination $Destination
    $nfo = Join-Path -Path $_.Directory -ChildPath ($_.BaseName + '.nfo')
    Move-Item -Path $nfo -Destination $Destination
    $poster = Join-Path -Path $_.Directory -ChildPath ($_.BaseName + '-poster.jpg')
    Move-Item -Path $poster -Destination $Destination
    $fanart = Join-Path -Path $_.Directory -ChildPath ($_.BaseName + '-fanart.jpg')
    Move-Item -Path $fanart -Destination $Destination
}

... bitte erst an Test-Daten testen!!  ;-) 

bearbeitet von BOfH_666
Link zu diesem Kommentar

Perfekt.

Macht genau was ich wollte.

 

Wäre manuell oder auch mit einem so komplen Tool auch nicht schneller gegangen da ich mich da auch erst wieder hätte einarbeiten bzw. reindenken müssen.

 

Ich habe gelernt dass es besser ist wenn ich meine Frage komplett mit allen Infos stelle und meine Denkfehler weglasse da diese das Problem eher verkomplizieren.

 

VIELEN DANK.

 

Wenn Du mal nach Unterfranken kommst gebe ich Dir einen aus.

 

Link zu diesem Kommentar

Da war der Olaf wieder schneller - ich wollte das noch etwas austesten, würde bei mir so aussehen:

$Source = 'c:\abc'
$Target = 'c:\xyz'
$ext = 'nfo'

$Names = Get-ChildItem -Path $Source -Filter "*.$Ext" -Recurse | Foreach { Add-Member -InputObject $_ -MemberType NoteProperty -Name NameLength -Value $_.BaseName.Length -PassThru }
$Names = $Names | Sort -Property NameLength -Descending
Foreach ( $Name in $Names ) {
  	# alle Files im gleichen Folder wie das NFO
  	$Files = Get-ChildItem -Path $( $Name.DirectoryName )
    # alle Files "irgendwo"
    $Files = Get-ChildItem -Path $Source -Filter "$( $Name.BaseName )*" -Recurse

    $CurrTarget = "$Target\$($Name.BaseName)"
    # jetzt noch die Files kopieren/moven
    New-Item $CurrTarget
    Foreach ( $File in $Files ) {
        $File | Move-Item -Destination $CurrTarget -Force
    }
}

Hat in meinen Augen den Charme, daß es die längsten Basenames zuerst verarbeitet - damit sind Fehlinterpretationen etwas reduziert. Aber das ist natürlich wurscht, wenn Du tatsächlich nur Fanart und Poster hast :-)

 

Und Schleifchen kann man sicher auch noch drankleben :shock2:

 

Edit: Ja, es ist oft besser, das eigentliche Ziel darzustellen als nach einer Lösung für Schwierigkeiten auf dem halben (und manchmal falschen) Weg zu fragen :thumb1:

bearbeitet von daabm
Link zu diesem Kommentar

@LEDZEPPELIN Ich weiß grad im Kopf nicht mal genau, welche Region Unterfranken eigentlich ist :-):-) Bitte net hauen - Nürnberg kenn ich gut, Würzburg und Ansberg sind mir auch bekannt, aber die Grenzverläufe nicht...

 

Testen mußt Du es eigentlich nicht - wenn die Variante von Olaf für dich funktioniert, ist doch alles ok. Aber jeder Skripter denkt etwas anders und findet daher andere Lösungen, und die von Olaf unterscheidet sich von meiner schon elementar, da dachte ich, ich stelle die trotzdem noch mit rein. @BOfH_666 Du bist bestimmt jetzt nicht böse, oder? ;-) Und rock stable ist es auch nicht - bei New-Item würde es abkacken, wenn der Zielordner schon existiert :smile2:

Link zu diesem Kommentar
vor 2 Stunden schrieb daabm:

@BOfH_666 Du bist bestimmt jetzt nicht böse, oder? ;-) Und rock stable ist es auch nicht - bei New-Item würde es abkacken, wenn der Zielordner schon existiert :smile2:

Du hast es runiniert!!!!  :angry2:  ...   neee  :lool:  :aetsch2:  ... und für "rock stable" ist der Empfänger zuständig ... nicht die kreativen Problemlöser-Köpfe, die hier die Ideen liefern  ... die können sich nicht mit so profanen Dingen wie Error-Handling oder so'n Schmus aufhalten lassen ....  :rofl:  :cool:  :victory:

bearbeitet von BOfH_666
Link zu diesem Kommentar
vor 10 Stunden schrieb daabm:

Und rock stable ist es auch nicht - bei New-Item würde es abkacken, wenn der Zielordner schon existiert :smile2:

Dafür gibt es doch "-Force". Wozu Error-Handling? Tz.. :) Und ansonsten ist der Part ja in @BOfH_666s Script mit drin.

 

P.S.: @daabm und @BOfH_666: Leerzeichen nach Statements und vor/nach den Expressions in Klammern lassen meinen inneren Monk Schnappatmung kriegen. ;) Ich bin aber sehr froh, dass Ihr den Scriptblock nicht in eine neue Zeile verfrachtet, wie es MS in den Beispielen der Docs oder auch die ISE macht.

P.P.S.: Gibt es hier theoretisch eigentlich einen "korrekten" Standard?

P.P.P.S.: Ihr beide versteht ja Spaß und dürft natürlich euren Code so formatieren, wie ihr wollt. :)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...