Top-Themen

Aktuelle Themen (A bis Z)

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

MP3 Sortieralgorithmus

Mitglied: SaranaDimicarus

SaranaDimicarus (Level 1) - Jetzt verbinden

16.06.2014 um 10:12 Uhr, 1693 Aufrufe, 9 Kommentare

Hallo Community,

ich versuche mir per Power-Shell einen einfachen Sortieralgorithmus für meine MP3 Downloads zu erstellen. (Falls die Frage aufkommt... Nein es sind keine Raubkopien... ich nehme mir mit spezieller Software Lieder, die über Webradios gespielt werden, legal auf.) Da ich eine extrem gute Verbindung habe können dies innerhalb eines Arbeitstages schon 5-10k Mp3´s sein. Jetzt wollte ich mir ein Programm schreiben das 2 Textdateien abarbeiten soll und die Einträge in der "OK" Liste in einen neuen Ordner verschieben und die Einträge in der "NichtOK" Liste einfach löschen. Mein Programm funktioniert jetzt bereits soweit, das es mir die Bands aus der OK liste in einen Ordner verschiebt.

Ich habe mal mein "Programm" unten angefügt und konkret handelt es sich um die Teile mit "=>". Hier will ich, dass ein Ordner mit dem namen der Band angelegt wird. (also im Ordner TEST existiert dann ein Ordner z.B.: "Black Sabbath"). Nur finde ich im Internet irgendwie gerade nicht, wie ich den Befehl MD mit einer Variablen kombinieren soll %$Band% oder %band% funktionieren irgendwie auch nicht
Ach ja bitte ned allzuarg lachen das ist mein erstes Programmierprojekt

Hier nun das Progrämmchen...

$array =Get-content d:\Projekt\OKListe.txt
$counter = 0
$newDirectory = 0
$mp3="*.mp3"

do{

$newDirectory = $array[$counter]
$newDirectory = $newDirectory.replace("*"," ")
$newDirectory = $newDirectory.replace("?"," ")
$Band =$array[$counter]+$mp3


if ((Test-Path F:\test) -ne $True)
{
new-item F:\test -ItemType directory
}

=> move-item -path d:\projekt\$Band -destination F:\test
=> md f:\test\$Band
$counter++

}
while ($counter -le $array.count-1)


Mitglied: SaranaDimicarus
16.06.2014 um 11:59 Uhr
hallöchen...

ich wusste wenn ich hier poste hab ich es n paar minuten später selbst rausgefunden -.-

also für denjenigen den es interessiert... ich habs jetzt so gelöst...

new-item -path F:\Test\ -name $Band -type directory

ich würde gerne aber das Thema nicht nicht als gelöst einstellen, da mich trotzdem eure Kommentare/verbesserungen an meinem Code interessieren. Ich komme morgen dann wieder und schließe den Thread

danke nochmals fürs lesen :D
Bitte warten ..
Mitglied: Xaero1982
16.06.2014 um 13:23 Uhr
Hi,

gibt es nur, wenn du Code-Tags benutzt. <"code"> und <"/code"> ohne "" -> oben auf Bearbeiten klicken und bitte anpassen.

Gruß
Bitte warten ..
Mitglied: colinardo
17.06.2014, aktualisiert um 12:01 Uhr
Moin Sarana, Willkommen auf Administrator.de!
Ach ja bitte ned allzuarg lachen face-smile das ist mein erstes Programmierprojekt face-smile
Machen wir nicht, ließe sich aber auf eine Zeile reduzieren (wenn ich deinen Code richtig interpretiert habe):
01.
gc "d:\Projekt\OKListe.txt" | %{$bandDIR = "F:\Test\$_"; if(!(Test-Path $bandDIR )){md $bandDIR -Force}; move-item "D:\projekt\$_*.mp3" $bandDIR -Force}
Viel Spaß bei entziffern

p.s. die Variable $newDirectory verwendest du nirgendwo ... ?

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
17.06.2014, aktualisiert um 11:58 Uhr
[OT]
Hi Xaero,
Zitat von Xaero1982:
gibt es nur, wenn du Code-Tags benutzt. <"code"> und <"/code"> ohne "" -> oben auf
Bearbeiten klicken und bitte anpassen.
ein kleiner Tipp nebenbei : Du kannst die Code-Tags hier im Text auch richtig ausschreiben:

<code> Quelltext </code>

dazu schreibst du diese mit einem Dummy folgendermaßen:

515d99895e469e63a5671527848b3fd7 - Klicke auf das Bild, um es zu vergrößern

[/OT]

Grüße Uwe
Bitte warten ..
Mitglied: SaranaDimicarus
18.06.2014 um 07:09 Uhr
So danke erstmal für die vielen Antworten bin leider gestern nicht mehr zu einer Antwort gekommen

das mit dem gekürzten Code probier ich dann gleich mal aus und auch das mit den Tags meine Vorgehensweise war halt folgende... ich hab mir überlegt was gemacht werden soll und dann hab ich solange gegoogelt und ausprobiert bis das codeschnipsel das getan hat was ich will... und dann hab ich es in mein "Programm eingebaut". Daher kommt es auch das die Variable $NewDirectory noch nirgens benutzt worden ist

na ich probier alles mal aus und geb dann nochmal bescheid obs geklappt hat

danke nochmals und ich wünsche euch einen schönen Tag.

Sandra
Bitte warten ..
Mitglied: SaranaDimicarus
23.06.2014 um 09:56 Uhr
Sooo jetzt habe ich an meiner Lösung weitergebastelt... Bei mir dauert das halt immer ein bischen, da ich 2 Kinder habe die einfach vorgehen (4Jahre und der andere 5 Monate)

Der Einzeiler hat leider nicht so funktioniert wie er sollte... bei einem Datensatz in der OKListe hat er keine mucken gemacht... sobald aber mehr Datensätze drinnen waren hat er die Verzeichnisse angelegt, jedoch alle Mp3´s die im Ausgangsverzeichnis drinnen waren kopiert ohne eine auswahl zu treffen. Aber hat mir doch n paar nette Hilfestellungen zu meinem Code gebracht

der sieht inzwischen so aus:

#Globale Variablen
#
$array =Get-content d:\Projekt\OKListe.txt
$zielDIR = "F:\test"
$startDIR = "D:\projekt"
$counter = 0
$newDirectory = 0
$mp3=".mp3"


do{

#Hier wird der Bandname aus dem Array ohne * und ? (die für das kopieren später wichtig sind)
#dargestellt. Aus Black?Sabbath* wird Black Sabbath
#Originalbezeichung der z.B.: Alice Cooper - Poison 1989.mp3
#Problem... ähnliche Bandnamen z.B.: ACDC, AC/DC, AC DC, AC_DC => ? und *
#
$newDirectory = $array[$counter]
$newDirectory = $newDirectory.replace("*"," ")
$newDirectory = $newDirectory.replace("?"," ")
$newDirectory = "$zielDIR\$newDirectory"

#komplette MP3 Bezeichung mit .mp3
#
$band ="$array[$counter]+$mp3"
write-output "Ausgabe Variable Band: $band"
Write-Output "Counter $Counter"

#Hier werden die Bandspezifischen Ordner festgelegt
#
  1. F:\Test\Black Sabbath
$zielDIRBand = "$zielDIR\$newDirectory"
#PASST! write-output "Ausgabe variable zielDIRBand: $zielDIRBand"
  1. D.\projekt\black?Sabbath*.mp3
$zielITEMS = "$startDIR\$Band"
write-output "Ausgabe variable zielITEMS: $zielITEMS"

#Hier wird überprüft, ob es schon einen Ordner gibt. Wenn nicht wird er angelegt
#
if (!(Test-Path $zielDIRBand))
{
md $newDirectory -Force
}

#Hier werden die MP3 der speziefischen Band in den Bandordner verschoben/kopiert.
#
copy-item $zielITEMS $zielDIRBand
$counter++

}
while ($counter -le $array.count-1)


***

Das funktioniert inzwischen ganz gut... habe ich aber mehrere verschiedene Dateien in meiner OKListe klappt der zugriff auf das Array nicht mehr... Daraufhin hab ich versucht die Ausgaben meiner Variablen mittels "write-output" auszulesen. (daher auch meine Meinung das nur da Array probleme macht). Ich füge es jetzt noch mit an und bin mir sicher, das ihr mir da helfen könnt :D

Ach eine frage noch... wie kann ich denn in meinem "programm" ein anderes Programm aufrufen? (nur so aus interesse)

So nun hier die Ausgaben meiner Variablen

Mode LastWriteTime Length Name
------------- ------ ----
d---- 20.06.2014 10:49 Masters Of Metal ,
Ausgabe Variable Band: Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[1]+.mp3
Counter 1
Ausgabe variable zielITEMS: D:\projekt\Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[1]+.mp3
d---- 20.06.2014 10:49 Platzhalter ,
Ausgabe Variable Band: Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[2]+.mp3
Counter 2
Ausgabe variable zielITEMS: D:\projekt\Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[2]+.mp3
d---- 20.06.2014 10:49 Accept ,
Ausgabe Variable Band: Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[3]+.mp3
Counter 3
Ausgabe variable zielITEMS: D:\projekt\Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[3]+.mp3
d---- 20.06.2014 10:49 Alice Cooper ,
Ausgabe Variable Band: Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[4]+.mp3
Counter 4
Ausgabe variable zielITEMS: D:\projekt\Masters?Of?Metal*, Platzhalter*, Accept*, Alice?Cooper*, Black?Sabbath*,[4]+.mp3
d---- 20.06.2014 10:49 Black Sabbath ,
Bitte warten ..
Mitglied: colinardo
23.06.2014, aktualisiert um 10:37 Uhr
naja ohne das wir genauere Spezifikationen bzw. Beispiele aus deinem Textfile bzw. deines Vorhabens haben, schwer deine Ansprüche exakt umzusetzen.
Und bitte nutze Code-Tags für deinen Quellcode: <code> Quellcode </code>, ansonsten kommen uns hier eventuell wichtige Sonderzeichen abhanden, hatten wir aber oben schon zwei mal erwähnt!
Ach eine frage noch... wie kann ich denn in meinem "programm" ein anderes Programm aufrufen? (nur so aus interesse)
http://social.technet.microsoft.com/wiki/contents/articles/7703.powersh ...
"C:\deinprogramm.exe"
start-process "C:\Deinprogramm.exe"
und schau dir bitte mal das foreach() Konstrukt an dann brauchst du das Gebastel mit dem do while und dem counter nicht:
foreach($line in $array){ 
  ... 
}
Bitte konsultiere zuerst diese Referenzen, für einen Grundkurs in Powershell ist das Forum eigentlich zu schade ... ich fahr ja auch kein Auto ohne Führerschein
Powershell Grundlagen- und Praxisvermittlung:

Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: SaranaDimicarus
23.06.2014 um 14:17 Uhr
ah sorry das mit dem <code> hab das völlig vergessen -.- mea culpa...

ich verlange hier ja keinen Grundkurs in Powershell... ich habe mir das Programm ja unter hilfenahme von Internetquellen soweit hingebogen... es läuft ja soweit nur das es dieses Problem mit dem Array gibt...

und klar ohne führerschein fahr ich nicht auto... aber ich hoffe du setzt dein kind nicht in das auto und sagst... üb du mal selber.. hier ist die Betriebsanleitung vom auto :D sondern schickst ihn in die Fahrschule wo ihm geholfen wird :D und den Fahrschullehrer darf man dann bestimmt auch was fragen :P

ich mach das halt immer so wies im Internet steht und wenns nicht klappt probier ich andere sachen aus... und wenn die nicht klappen frage ich hier nach...dachte das wäre soweit ok...

und wie die MP3 Benennungen aussehen hab ich ja auch in die # Eingetragen... das mit dem Txt-File ist evtl etwas schwer zu verstehen aber da steht nix anderes drinnen wie

Alice?Cooper*
AC?DC*
Accept*
usw...

wenn ihr der meinung seit das gehört nicht ins forum dann ist das auch ok... dann entschuldige ich mich, das euch mit meinen profanen Frauenproblemen belästigt habe
Bitte warten ..
Mitglied: SaranaDimicarus
02.07.2014 um 10:47 Uhr
Hallo ihr alle,

das Programm funktioniert... habs hinbekommen... :D
danke nochmals für alle eure Tipps... werd mich dann evtl darum kümmern den Quallcode zu optimieren und vielleicht auch die DO-While schleife gegen das foreach ersetzen... für die, die es auch interessiert... hier der funktionierende (zugegebenermaßen nicht so optimierte) Quellcode

#Globale Variablen
#
$array =Get-content d:\Projekt\OKListe.txt
$zielDIR = "F:\test"
$startDIR = "D:\projekt"
$counter = 0
$newDirectory = 0
$mp3="mp3"

write-output "Arrayinhalt: $array"
write-output "Anzahl der Elemente im Array:"
$array.count

do{

#Hier wird der Bandname aus dem Array ohne * und ? (die für das kopieren später wichtig sind)
#dargestellt. Aus Black?Sabbath* wird Black Sabbath
#Originalbezeichung der z.B.: Alice Cooper - Poison 1989.mp3
#Problem... ähnliche Bandnamen z.B.: ACDC, AC/DC, AC DC, AC_DC => ? und *
#
$newDirectory = $array[$counter]
$newDirectory = $newDirectory.replace("*"," ")
$newDirectory = $newDirectory.replace("?"," ")
$newDirectory = "$zielDIR\$newDirectory"

#komplette MP3 Bezeichung mit .mp3
#
#Variable Band hat das Endformat )=> Accept*.mp3
$band = $array[$counter]
$band = "$band.$mp3"
write-output "Ausgabe Variable Band: $band"
Write-Output "Counter $Counter"

#Hier werden die Bandspezifischen Ordner festgelegt
#
  1. F:\Test\Black Sabbath
$zielDIRBand = "$newDirectory"
write-output "Ausgabe variable zielDIRBand: $zielDIRBand"
  1. D.\projekt\black?Sabbath*.mp3
$zielITEMS = "$startDIR\$Band"
write-output "Ausgabe variable zielITEMS: $zielITEMS"

#Hier wird überprüft, ob es schon einen Ordner gibt. Wenn nicht wird er angelegt
#
if (!(Test-Path $zielDIRBand))
{
md $newDirectory -Force
}

#Hier werden die MP3 der speziefischen Band in den Bandordner verschoben/kopiert.
#
copy-item $zielITEMS $zielDIRBand
$counter++

}
while ($counter -le $array.count-1)

danke euch allen nochmal..
Bitte warten ..
Ähnliche Inhalte
Mac OS X
Musik zu MP3 Konvertieren
Frage von gamerffMac OS X7 Kommentare

Hallo Forum, ich habe mir einen neuen Mac gekauft und kenne mich noch nicht so ganz damit aus. Ich ...

Papierkorb
Mp3-Dateien werden nicht abgespielt
Frage von 121355Papierkorb3 Kommentare

Hallo Com, wie oben gesagt spielt mein LapTop keine mp3s,WMAs, usw mehr ab. Sehr schei_ für mich Programme, die ...

Audio
OBS Studio nur MP3 - Alternative
Frage von ArberBerAudio1 Kommentar

Hallo, ich möchte gerne mit OBS Studio nur eine Audiodatei aufnehmen. Es soll also nicht der Desktop mit aufgezeichnet ...

Windows 7

Alle Bilddatein und Officedokumente in Dateityp mp3

gelöst Frage von tylerdurden21Windows 74 Kommentare

Hallo Zusammen, ich habe aktuell folgendes Problem. Und zwar haben ich bei jemanden einen Privatrechner, neu eingerichtet (Win7 Pro ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 7 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 13 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 17 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...