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, 4883 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
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...