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, 4875 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
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Ordner inkl. Unterordner nach Dateien überprüfen (4)

Frage von belfry zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien mit Teil des Dateinamen per Batch in Unterordner verschieben (14)

Frage von smitternacht zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...