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
GELÖST

Dateien verschiedener Unterordner nach Dateiendung in jeweilige Unter-Unterordner sortieren

Frage Entwicklung Batch & Shell

Mitglied: Liquidskys

Liquidskys (Level 1) - Jetzt verbinden

25.01.2011, aktualisiert 01:15 Uhr, 4880 Aufrufe, 3 Kommentare

Hallo,
ich möchte hunderte gemischte Ordner mit JPG und CR2 Dateien auseinandersortieren. Trotz der möglichen Beispiele im Forum komme ich diesmal nicht weiter.
Danke für die Hilfe!

Hallo,

ich habe zirka 47 000 Bilddateien in folgender Ordnerstruktur:

\\
100
-Datum1
--Schlagwort x
--Schlagwort y
-Datum2
--Schlagwort z
-Datum3
--Schlagwort a
--Schlagwort b
101
-Datum4
--Schlagwort
...
102
....


In den Ordnern mit den Schlagwörten als Ordnername befinden sich *.jpg und *.cr2 Dateien.
Ich möchte jetzt die *.cr2 Dateien in dem jeweiligen Schlagwortordner in einen Unterordner Namens CR2 kopieren.

Ich habe es mit 2 Batchdateien als Schleife versucht:
Batch1:
for /D /r %%F in (*.*) do call "E:\Foto Test\mymove.bat" "%%F"

Batch2:
REM @echo off
cd %1
if exist *.cr2 (
if not exist CR2 md CR2
move *.cr2 CR2
)


Leider kommt er immer wieder mit den Ordnernamen durcheinander und kopiert dann in einer einzigen Endlosschleife.

Über Hilfe würde ich mich sehr freuen.

Viele Dank!
Mitglied: bastla
25.01.2011 um 08:09 Uhr
Hallo Liquidskys und willkommen im Forum!

Schematisch (und weitgehend ungetestet) etwa so:
01.
@echo off & setlocal 
02.
set "Basis=D:\" 
03.
set "Typ=CR2" 
04.
 
05.
for /f "delims=" %%i in ('dir /s /b /ad "%Basis%"') do for /f "tokens=1-5 delims=\" %%a in ("%%~fi") do if "%%d" neq "" if "%%e"=="" ( 
06.
    echo Bearbeite "%%i" 
07.
    if exist "%%~i\*.%Typ%" ( 
08.
        echo md "%%~i\%Typ%" 2>nul 
09.
        echo move "%%~i\*.%Typ%" "%%~i\%Typ%\" 
10.
11.
12.
pause
Voraussetzung ist dabei, dass die Tiefe der Ordnerstruktur Deiner Darstellung entspricht (da ich vermute, dass es kein anderes Erkennungskriterium für die "Schlagwort"-Ordner gibt - ev wäre aber das Namensformat der Datumsordner noch als Anhaltspunkt zu verwenden). Für jede weitere Ordnerebene wäre der Teil
for /f "tokens=1-5 delims=\" %%a in ("%%~fi") do @if "%%d" neq "" if "%%e"=="" (
entsprechend "nachzuziehen" - wenn also der Basisordner nicht "D:\", sondern zB "D:\Archiv\Bilder" wäre, müsste dieser Teil
for /f "tokens=1-7 delims=\" %%a in ("%%~fi") do @if "%%f" neq "" if "%%g"=="" (
lauten.

Die beiden "echo" in den Zeilen 8 und 9 sollen dem gefahrlosen Testen dienen - erst, wenn diese "echo" entfernt werden, werden tatsächlich Ordner erstellt und Dateien verschoben. Dann ist vermutlich auch die (nur als Info gedachte) Zeile 6 entbehrlich.

Grüße
bastla
Bitte warten ..
Mitglied: Liquidskys
25.01.2011 um 22:06 Uhr
Hi bastla,

vielen Dank für die superschnelle Hilfe.

Die Vermutung mit der Ordnerstruktur war vollkommen richtig.
Der der Basisordner auch nicht root war habe ich auch noch den Anfang von der Schleife für die Ordnertiefe angepasst.

>for /f "delims=" %%i in ('dir /s /b /ad "%Basis%"') do for /f "tokens=3-7 delims=\" %%a in ("%%~fi") do if "%%d" neq "" if "%%e"=="" (

Danach hat der Batch in MInuten erledigt, wofür ich mehree Abende gebraucht hätte.

Vielen Dank nochmal!
Liquidskys
Bitte warten ..
Mitglied: bastla
25.01.2011 um 22:14 Uhr
Hallo Liquidskys!
Danach hat der Batch in MInuten erledigt, wofür ich mehree Abende gebraucht hätte.
Dafür sind Batches ja schließlich auch da.

Freut mich jedenfalls, dass es gepasst hat ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...