Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batchdatei, die Dateien sortiert und Ordner erstellt

Frage Microsoft

Mitglied: FocKo

FocKo (Level 1) - Jetzt verbinden

07.01.2007, aktualisiert 08.01.2007, 4036 Aufrufe, 12 Kommentare

Liebe administrator.de-User, Programmierer und Entwickler,

ich suche eine Batchdatei, die mir ca. 1000 Dateien (Bilder) in Ordner steckt und zwar nach Beginn des Bilddateinamens.

z.B. heissen 150 Bilder "kreta001, kreta002, kreta003, ..."
diese Bilder sollten dann von meiner Batchdatei in einen Ordner gepackt werden, der dann "kreta" heisst.

Da ich mich mit Batchdateien noch nicht so gut auskenne bitte ich euch um Hilfe.

Vielen Dank im Voraus
Mit freundlichen Grüßen FocKo

PS: Meine Rechnerdaten:
- Tyan Tiger MP 2*1900+
- 1024 MB Arbeitsspeicher
- 540 GB HDD
- 256 MB MSI RX800GT
Mitglied: bastla
07.01.2007 um 16:42 Uhr
Hallo FocKo und willkommen im Forum!

Du solltest vorweg genauer festlegen, nach welchen Kriterien die Ordnernamen aus den Bildnamen ermittelt werden sollen (erste 5 Zeichen, bis zum ersten Auftreten einer Ziffer, bis zum ersten "Nicht-Buchstaben", ...).

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
07.01.2007 um 16:46 Uhr
Wie sollen den die Ordner benannt werden? Immer nach den ersten 5 Buchstaben oder wie ist die Systematik?

miniversum

Edit: Hmm mal wieder zu langsam...
Bitte warten ..
Mitglied: FocKo
07.01.2007 um 18:31 Uhr
Danke für deine schnell antwort.

ich möchte dass die ordner bis zum ersten "-" bennant werden (wenn z.b. eine datei kreta - 001 heisst) dann möchte ich dass die datei einen ordner erstellt der dann bis zum ersten "-" geht, in dem fall jetzt einen ordner mit "kreta".

Mit freundlichen Grüßen focko
Bitte warten ..
Mitglied: miniversum
07.01.2007 um 18:51 Uhr
Versuchs mal so (ungetestet):

@echo off

FOR /F "delims=-" %%i IN ('dir /b') DO md "%%i" 2>NUL & move "%%i*.*" "%%i/%%i*.*"

miniversum

Edit: Nach bastla's Hinweis " beim Move befehl angepasst.
Bitte warten ..
Mitglied: Biber
07.01.2007 um 19:18 Uhr
Moin FocKo,

auch von mir willkommen.
Leider war ich nicht so schlau, nochmal nachzufragen, sondern habe Deine erste Anforderung ernstgenommen... *grummel*
z.B. heissen 150 Bilder "kreta001, kreta002, kreta003, ..."
Na ja, vielleicht braucht ja irgend jemand mal eine Variante für diese Mimik, der/die kann sich nochmal melden...

Die einfache Variante ist im Prinzip mit miniversums Einzeiler abzufackeln und sieht in epischer Breite so aus:
01.
::---snipp Group-Bilder.bat---- Placed into the PD by Biber 2007 
02.
::---Variante für Dateien der Form "kreta - 001.jpg"... "Peine-4711.jpg" 
03.
@echo off & setlocal EnableDelayedExpansion  
04.
Set "bilderordner=Z:\bilder" && REM !!!!! HIER ANPASSEN!!!!!! 
05.
Set "ZielordnerRoot=D:\Alle meine Urlaube" && REM !!!!! HIER ANPASSEN!!!!!! 
06.
Set "lastgroup=nothing" 
07.
:: Step 1 Dateien mit gleichem Namensbeginn ermitteln. 
08.
:: Unterstellung: Name setzt sich zusammen aus n Zeichen + "-" oder " -" + m Ziffern + Endung .jpg. 
09.
Echo Moment...ermittle Gruppen... 
10.
For /f "delims=- " %%i in ('dir /b /o:n %bilderordner%\*-*.jpg') do (  
11.
  (echo %%i|find /i "!lastgroup!">Nul) || (set "lastgroup=%%i" & set "allgroups=!allgroups! %%i")    
12.
13.
echo Gefundene Gruppen: %Allgroups% 
14.
If not Exist "%ZielOrdnerRoot%" ECHO md "%zielOrdnerRoot%" 
15.
For %%i in (%Allgroups%) do ( 
16.
        ECHO md "%zielOrdnerRoot%\%%i" 
17.
        ECHO move "%bilderordner%\%%i*.jpg" "%zielOrdnerRoot%\%%i" 
18.
)         
19.
goto :eof 
20.
::---snipp Group-Bilder.bat----
Demo-Aufruf:
01.
$cmd$group-bilder 
02.
Moment...ermittle Gruppen... 
03.
Gefundene Gruppen:  Ballermann berlin kreta NeueVahrSüd 
04.
md "D:\Alle meine Urlaube" 
05.
md "D:\Alle meine Urlaube\Ballermann" 
06.
move "Z:\bilder\Ballermann*.jpg" "D:\Alle meine Urlaube\Ballermann" 
07.
md "D:\Alle meine Urlaube\berlin" 
08.
move "Z:\bilder\berlin*.jpg" "D:\Alle meine Urlaube\berlin" 
09.
md "D:\Alle meine Urlaube\kreta" 
10.
move "Z:\bilder\kreta*.jpg" "D:\Alle meine Urlaube\kreta" 
11.
md "D:\Alle meine Urlaube\NeueVahrSüd" 
12.
move "Z:\bilder\NeueVahrSüd*.jpg" "D:\Alle meine Urlaube\NeueVahrSüd"
[Die GROSS geschriebenen ECHO-Befehle zum Scharfmachen löschen.]
Der einzig nennenswerte Unterschied der Strategie zwischen miniversums und meiner Variante ist, dass ich zuerst alle "Gruppen", also die neuen Ordnernamen ermittle und dass bei mir Quell- und Zielordner unabhängig voneinander sind.

Gruß
Biber
P.S. Bin schon gespannt auf bastla's Variation des Themas....
P.P.S. Den Namen der Batchdatei spricht man/frau "Group-Bindestrich-Bilder"... die erste Variante für die erste Anforderung hieß "GroupBilder.bat."
Bitte warten ..
Mitglied: bastla
07.01.2007 um 19:34 Uhr
@Biber

Ich wollt's eigentlich schon einstampfen, aber wenn Du neugierig bist ...
Im Prinzip die gleiche Logik wie bei miniversum, nur etwas ausgeschmückt (und inzwischen auch schon getestet ):
01.
@echo off & setlocal 
02.
set Typ=*.jpg 
03.
for /f "delims=-" %%i in ('dir /b %Typ%') do call :Process "%%i" 
04.
goto :eof 
05.
:Process 
06.
if not exist "%1" md "%1" 
07.
move "%1%Typ%" "%1"
Grüße
bastla

P.S.: Ich hatte auch an einem VB-Script gebastelt (falls die Namens-Systematik etwas komplizierter geworden wäre), das etwa Deinem Ablauf entsprochen hätte (also zuerst die Ordner, dann das Verschieben), daher meine "Verspätung" ...

[Edit]So weit da oben im Thread wollte ich das eigentlich nicht reinquetschen ... [/Edit]
Bitte warten ..
Mitglied: FocKo
07.01.2007 um 19:48 Uhr
So, hab das jetzt mal ausprobiert...
...leider ohne Erfolg.

Ich hab sowohl den "Bildordner" als auch den "Zielordner" angegeben. Habe dann die Batchdatei ausgeführt und gehofft das sich was rührt...aber leider nix.

Ich habe auch noch ein weiteres Problem entdeckt.
Da ich noch ein paar Musiktitel sortieren muss dachte ich mir frage ich euch, da ihr euch etwas besser als ich auskennt.
Das Schema ist das gleiche:
Die Musiktitel sind so sortiert, dass als erstes der Interpret kommt dann ein Bindestrich und dann der Musiktitelname (Beispiel: Seeed - Papa Noah.mp3)

Könnte man für dieses Beispiel auch eine Batchdatei verfassen, die für jeden vorhandenen Interpreten einen eigenen Ordner erstellt und die vorhandenen Musiktitel automatisch in die von der Batchdatei erstellten Ordner verschiebt?

D.i.V.
Mit freundlichen Grüßen FocKo
Bitte warten ..
Mitglied: miniversum
07.01.2007 um 19:58 Uhr
Hast du alle Drei getestet und alle drei gehennicht?

Mit musik sollte es genau so gehen. Nur eben an den entsprechenden Stellen das jpg gegen ein mp3 austauschen.

miniversum
Bitte warten ..
Mitglied: Biber
07.01.2007 um 19:58 Uhr
@FocKo
Kann eigentlich nur an meiner Unterstellung liegen, dass die Bilder die Endung .jpg haben.
Aber nimm auch lieber bastla's Variante... meine ist nur so prosaisch geworden, weil es eine abgespeckte Variante der Anforderung 1 ist.

Zu Deiner Frage:
Erstens) Anforderungen "Musiktitel nach Interpret/Album und Titel trennen und bla" hatten wir schon. Probier mal die Forumssuche.
Zweitens) Wenn wir die Beispielskizzen so dürftig kommentiert/so kryptisch geschrieben haben, dass ein Transfer auf eine ähnliche Aufgabe nicht möglich ist, dann haben wir es versiebt. Entschuldige.
An welchen Stellen gibt es denn Verständnisprobleme?

Gruß
Biber
Bitte warten ..
Mitglied: bastla
07.01.2007 um 20:31 Uhr
Hallo FocKo!

Sowohl miniversum's Lösung, als auch meine oben stehende Variante, setzen voraus, dass die Batch-Datei direkt im Bilder-Ordner liegt - von dort aus sollte es dann aber schon klappen (wenn Deine Bilder den Typ .jpg haben).

Für die Musikdateien kannst Du (nach Anpassung des Dateityps) die gleiche Batch-Lösung nehmen, da auch hier das Trennzeichen (steht nach "delims=") ein "-" ist.

Grüße
bastla
Bitte warten ..
Mitglied: bastla
07.01.2007 um 20:41 Uhr
@miniversum

2 Kleinigkeiten (und beide ganz am Ende, beim Verschiebe-Ziel, für das auch die Ordnerangabe genügt hätte):
Das Anführungszeichen sollte vor dem ersten %%i stehen, um auch den Pfad gegen Leerstellen abzusichern (wie Du es vorne bereits gemacht hast), und auf einen Unix/Linux-Slash könnte ein MS-System etwas gereizt (oder zumindest mit Unverständnis) reagieren ...

Grüße
bastla
Bitte warten ..
Mitglied: FocKo
08.01.2007 um 16:31 Uhr
Danke für eure Hilfe,
habs zwar immer noch nicht wirklich auf die Reihe bekommen...(nein).

Wer mir trotzdem helfen will der kann mich, wenn er will im Xfire, MSN, ICQ adden:

ICQ: 302018935
MSN: floweiss1@gmx.de
Xfire: focko1991

Danke

Mit freundlichen Grüßen FocKo
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
C und C++
Dateien in Ordner kopieren anhand vom Teil eines Dateinamen (22)

Frage von onlyforu8373 zum Thema C und C ...

Batch & Shell
Dateien im Ordner auslesen und umbennen (10)

Frage von jocheng zum Thema Batch & Shell ...

VB for Applications
gelöst Makro auf alle Dateien im Ordner (1)

Frage von mcandyyyyy zum Thema VB for Applications ...

Microsoft Office
Excel VBA "SVERWEIS" über mehrere Dateien in Ordner (2)

Frage von Acht85 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...