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

Frage Entwicklung Batch & Shell

GELÖST

Per Batch 7z Dateien anhand verschiedener Tags in diverse Ordner verschieben

Mitglied: romberto

romberto (Level 1) - Jetzt verbinden

22.05.2012 um 19:22 Uhr, 3936 Aufrufe, 12 Kommentare

Meine Mp3 Verwaltungswut geht weiter. Nachdem ich die Ordner nun richtig benannt und zu 7z Archiven gepackt habe, möchte ich diese per Batchfile in Verschiedene Unterordner Verschieben.

Die Namensgebung meiner 7zip Dateien ist wie folgt: YYYY-MM-DD - INTERPRET_-_ALBUM_TITEL_GENRE

Nun möchte ich die Dateien anhand der Tags (YYYY-MM-DD) und (GENRE) sortieren und zwar nach folgender Hirarchie:

Variabler Pfad.....\GENRE\YYYY\YYYY-MM\YYYY-MM-DD - INTERPRET_-_ALBUM_TITEL_GENRE.7zip

Die Datei "1962-08-XX - Johnny_Cash_-_The_Sound_of_Johnny Cash_Country.7z" soll also wie folgt kopiert werden:

Variabler Pfad z.b. C:\Country\1962\1962-08\1962-08-XX - Johnny_Cash_-_The_Sound_of_Johnny Cash_Country.7z

Die Batch sollte die diversen Ordner selbst erstellen falls diese nicht schon vorhanden sind.

Ich hoffe mein Gedankenspiel ist auch tatsächlich umsetzbar, für alternativ Lösungswege bin ich natürlich offen.
Wenn das ganze z.B. mit Verzeichnissen einfacher zu lösen wäre, könnte ich die Ordner auch erst nach dem Einpflegen mit 7z packen.

Ich freue mich schon auf euren Input.

Viele grüße

Robert
Mitglied: Dye.Kehasa
22.05.2012, aktualisiert um 19:43 Uhr
Moin

was ich mich bei deiner Aktion aber doch erst mal Frage ist, weshalb du überhaupt mp3-Dateien "komprimiert" irgendwo ablegst. Die Gänsefüßchen deshalb, weil es nun mal nicht möglich ist, ein ohnehin schon gepacktes Format noch in nennenswertem Umfang durch eine Komprimierung weiter zu verkleinern.

Gruß

Hubert
Bitte warten ..
Mitglied: romberto
22.05.2012 um 19:49 Uhr
Hallo Hubert,

Die Frage ist natürlich gerechtfertigt und du hast auch vollkommen recht damit. Deshalb werden die Dateien auch nur mit mx0 "archiviert". Ich möchte gerne die Dateienanzahl so gering und Übersichtlich wie möglich gestallten, deshalb sind die Dateien gepackt.

Gruß

Robert
Bitte warten ..
Mitglied: bastla
22.05.2012, aktualisiert um 22:01 Uhr
Hallo romberto!

Anhand Deines Beispiels etwa so:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Musik" 
03.
set "Basis=C:\" 
04.
 
05.
pushd "%Basis%" 
06.
for /f "delims=" %%i in ('dir /b/a-d "%Ordner%\*.7z"') do set "Name=%%~ni" & call :ProcessFile "%Ordner%\%%i" 
07.
popd 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
for %%a in (%Name:_= %) do set "Genre=%%a" 
12.
for /f "tokens=1-2 delims=-" %%a in ("%Name%") do set "Jahr=%%a" & set "Monat=%%b" 
13.
set "ZielOrdner=%Genre%\%Jahr%\%Jahr%-%Monat%" 
14.
echo md "%ZielOrdner%" 2>nul 
15.
echo move %1 "%ZielOrdner%\" 
16.
goto :eof
Wegen der beiden "echo" in den Zeilen 14 und 15 werden die Befehle zum Erzeugen der Ordner und zum Verschieben der Datei nur angezeigt, aber nicht ausgeführt - wenn alles vernünftig aussieht, einfach diese beiden "echo" entfernen und den Batch damit "scharf" schalten ...

Noch eine Anmerkung: Da vorweg in den Basispfad (im Beispiel "C:\") gewechselt wird, scheint dieser in der Ausgabe nicht auf - daher würde für Dein Beispiel die Anzeige so aussehen:
md "Country\1962\1962-08" 
move "D:\Musik\1962-08-XX - Johnny_Cash_-_The_Sound_of_Johnny Cash_Country.7z" "Country\1962\1962-08\"
Grüße
bastla

[Edit] Variablennamen auf %ZielOrdner% geändert [/Edit]
Bitte warten ..
Mitglied: 60730
22.05.2012, aktualisiert um 21:21 Uhr
Moin,

(ot)

Ich vermute mal, die anzahl derjenigen, die mehr mp3s als meine wenigkeit verwaltet, duerfte an einer hand abzuzaehlen sein.

Von daher kann ich das mit der ordnungswut nicht verstehen.
Meine "ordnungswut" besteht da dann doch eher darin, die id tags wirklich komplett sauber zu halten, lyrics zu pflegen und den ganzen anderen tuenneff, den man heute so macht, damit der mobile oder nicht mobile player die sammlung auch hybsch abspielen kann, eine statistik genutzt usw...

Ob man das nun mit amarok, squeezebox oder eitunes macht, ist ansichtssache, faktum (ala mischael schummelschumi) ist jedoch keiner der genannten verwalter holt sich nen wolf bei 100.0000 titeln.

(/ot)
Bitte warten ..
Mitglied: romberto
22.05.2012 um 21:41 Uhr
Hallo bastla,

vielen Dank ersteinmal! Das sieht genau nach dem aus, was ich gesucht habe. Die Ordner erstellt er mir auch 1a, wobei ich jetzt erst Merke, dass die Genre Sortierung wohl doch sehr unübersichtlich wird! Werde wohl erstmal den Befehl for %%a in (%Name:_= %) do set "Genre=%%a" rauslassen.

Dennoch scheint er mir die Datei selbst nicht verschieben zu wollen. Habe den Befehl Move auch schon mit xcopy ersetzt -> Datei nicht gefunden, obwohl sie mir im Befehl darüber angezeigt wird.

Viele Grüße

Robert
Bitte warten ..
Mitglied: bastla
22.05.2012, aktualisiert um 21:52 Uhr
Hallo romberto!

Das "echo" am Anfang der Zeile 15 hast Du entfernt?

Wenn Du übrigens "Genre" nicht verwenden willst, musst Du natürlich aus Zeile 13 auch die entsprechende Variable inkl folgendem Backslash entfernen, da ansonsten unabhängig vom angegebenen Basisordner die Ordner immer im Root des aktuellen Laufwerks erstellt werden ...

Grüße
bastla
Bitte warten ..
Mitglied: romberto
22.05.2012, aktualisiert um 22:04 Uhr
Ja, beide Echos sind weg. Mit Echo wird mir auch genau das Angezeigt, was in deinem Beispiel steht.
Allerdings habe ich, wie schon gesagt, die Zeile entfernt + oben set /p vor die Ordner gesetzt, da diese ja Variabel sind:

01.
@echo off & setlocal 
02.
set /p Ordner=Ordner:  
03.
set /p Basis=Basis:  
04.
 
05.
pushd "%Basis%" 
06.
for /f "delims=" %%i in ('dir /b/a "%Ordner%\*.7z"') do set "Name=%%~ni" & call :ProcessFile "%%i" 
07.
popd 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
for /f "tokens=1-2 delims=-" %%a in ("%Name%") do set "Jahr=%%a" & set "Monat=%%b" 
12.
set "Ordner=%Jahr%\%Jahr%-%Monat%" 
13.
md "%Ordner%" 2>nul 
14.
xcopy %1 "%Ordner%\" 
15.
pause
Fehler?

[Edit Biber] Codeformatiert, damit ich dir die Zeilennummer mit dem doppelten %Ordner% nennen kann. [/Edit]
Bitte warten ..
Mitglied: bastla
22.05.2012, aktualisiert um 22:12 Uhr
Hallo romberto!
Fehler?
Abgesehen davon, dass Du keine "Code"-Formatierung verwendest?
Ja - allerdings meinerseits: ein Variablenname (%Ordner%) für zwei verschiedene Pfade kann nicht gutgehen ...

Ich ändere das mal oben.

[Edit] Was Du aber nicht hättest ändern sollen, ist die Angabe des Ordners beim Aufruf des Unterprogramms in der (jetzt auch anhand der Nummer identifizierbaren - THX @ Biber) Zeile 6 ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: romberto
22.05.2012, aktualisiert um 22:14 Uhr
Wunderbar! Vielen Dank! Es Funtioniert jetzt 1A!

@TimoBeil: Sorry, deinen Kommentar habe ich im laufe des Gefechts garnicht mitbekommen. Es geht hier um die Verwaltung meines Backups. Da habe ich es lieber so sortiert und archiviert. Die "Live-Dateien" werden natürlich über einen Verwalter geordnet

Viele Grüße

Robert
Bitte warten ..
Mitglied: pieh-ejdsch
24.05.2012, aktualisiert um 11:15 Uhr
moin bastla,

auch wenn das Genre jetzt nicht mehr gebraucht wird.

Wenn als letztes das Genre mit einem Unterstrich vom Dateinamen unterscheidbar ist, dann kann der Tausch vom Unterstrich zum Backslash doch in der selben Schleife wie für die Jahr und Tag extraktion genommen werden.

(so Zeile 11 weglassen) und für Zeile 12
01.
for /f "tokens=1-2* delims=-" %%a in ("%Name:_=\%") do set "Jahr=%%a" & set "Monat=%%b" & set "Genre=%%~nc"
Ja - allerdings meinerseits: ein Variablenname (%Ordner%) für zwei verschiedene Pfade kann nicht gutgehen ...
Das hätte ja ohnehin gar nicht gestört. Die dir Auflistung ist ja schon lange vollzogen worden, bevor die Schleife das erste mal eine Ausgabe produziert. Delayedexpansion ist auch nicht an.

Ps. Roberto, bekommt der Beitrag noch einen Green Button ?

Gruß Phil
Bitte warten ..
Mitglied: bastla
24.05.2012 um 11:28 Uhr
@PH
Sehr hybsch - nur zur Sicherheit würde ich allerdings
... set "Genre=%%~nxc"
verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
24.05.2012 um 12:11 Uhr
@bastla,

ja stimmt, die Dateiendung wurde schon beim Weg in die Subroutine Entfernt.

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Eine Batch zum Sortieren verschiedener Dateien in Ordner
gelöst Frage von JaglagBatch & Shell16 Kommentare

Hallo, da ich leider mit Batch und shell nicht so erfahren bin hoffe das ein findiger User hier weiterhelfen ...

Batch & Shell
Ordner mit Dateien die älter sind als 180 Tage verschieben
gelöst Frage von ManneKLBatch & Shell11 Kommentare

Hallo Brauche eure Hilfe. Habe auf dem Server LW C:\Ordner(Test) mit Unterordnern( z. Bsp.FG, CD,KH) in denen Dateien enthalten ...

PHP
Besucherzähler verschiedener Tage in einer Datei
Frage von Der-SimonPHP8 Kommentare

Hallo Leute, ich hab mal eine kleine Frage an euch. Ich benutze auf meiner Seite ein kleines PHP Script ...

Batch & Shell
Batch Ordner erstellen und verschieben
gelöst Frage von FromeonlyBatch & Shell6 Kommentare

Hallo Leute, ich habe ein kleines Problem beim erstellen einer Batch. Ziel der Batch soll es sein, dass sie ...

Neue Wissensbeiträge
Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 5 MinutenMicrosoft

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...