Dateien in alphabetische Ordner sortieren
Hallo Forumsgemeinde,
leider habe ich sehr wenig Ahnung von Batchdateien etc.
Deswegen wird meine Frage vermutlich nur ein leises Schmunzeln erzeugen, aber ich habe im Netz nichts Ansprechendes gefunden und war von dem hier gezeigten Wissen sehr beeindruckt.
Mein Problem: Ich habe einen einzigen Ordner mit sehr vielen Dateien, die ich mittels einer Batch in vordefinierte Ordner (A bis Z) alphabetisch kopieren möchte.
Alle Dateien aus dem Quellordner mit dem Anfangsbuchstaben A sollen in den Zielordner 'A' kopert werden. Danach alle Dateien mit dem Anfangsbuchstaben B in den Ordner 'B' etc. bis 'Z'.
Da ich das häufiger machen muss, ist eine über den Explorer durchgeführte Kopierorgie überhaupt nicht lustig.
Für etwaige Lösungen wäre ich sehr dankbar.
Ciao
symei3
leider habe ich sehr wenig Ahnung von Batchdateien etc.
Deswegen wird meine Frage vermutlich nur ein leises Schmunzeln erzeugen, aber ich habe im Netz nichts Ansprechendes gefunden und war von dem hier gezeigten Wissen sehr beeindruckt.
Mein Problem: Ich habe einen einzigen Ordner mit sehr vielen Dateien, die ich mittels einer Batch in vordefinierte Ordner (A bis Z) alphabetisch kopieren möchte.
Alle Dateien aus dem Quellordner mit dem Anfangsbuchstaben A sollen in den Zielordner 'A' kopert werden. Danach alle Dateien mit dem Anfangsbuchstaben B in den Ordner 'B' etc. bis 'Z'.
Da ich das häufiger machen muss, ist eine über den Explorer durchgeführte Kopierorgie überhaupt nicht lustig.
Für etwaige Lösungen wäre ich sehr dankbar.
Ciao
symei3
10 Antworten
- LÖSUNG 114757 schreibt am 02.02.2016 um 18:02:35 Uhr
- LÖSUNG rubberman schreibt am 02.02.2016 um 18:32:19 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 18:47:22 Uhr
- LÖSUNG rubberman schreibt am 02.02.2016 um 18:57:29 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 19:07:15 Uhr
- LÖSUNG rubberman schreibt am 02.02.2016 um 18:57:29 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 18:47:22 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 18:37:28 Uhr
- LÖSUNG 114757 schreibt am 02.02.2016 um 19:15:55 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 21:08:12 Uhr
- LÖSUNG rubberman schreibt am 02.02.2016 um 21:36:16 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 22:43:04 Uhr
- LÖSUNG rubberman schreibt am 02.02.2016 um 21:36:16 Uhr
- LÖSUNG symei3 schreibt am 02.02.2016 um 21:08:12 Uhr
- LÖSUNG 114757 schreibt am 02.02.2016 um 19:15:55 Uhr
- LÖSUNG rubberman schreibt am 02.02.2016 um 18:32:19 Uhr
LÖSUNG 02.02.2016, aktualisiert um 22:43 Uhr
Moinsen,
gibt's zwar schon dutzende Threads zum selben Thema hier, aber ich gebs auf dauernd drauf hinzuweisen, bringt ja eh nichts ... also here you go:
Gruß jodel32
gibt's zwar schon dutzende Threads zum selben Thema hier, aber ich gebs auf dauernd drauf hinzuweisen, bringt ja eh nichts ... also here you go:
@echo off & setlocal enabledelayedexpansion
set "quelle=c:\quelle"
set "ziel=c:\ziel"
for %%a in ("%quelle%\*") do (
set "name=%%~na"
set "target=%ziel%\!name:~0,1!"
if not exist "!target!" md "!target!"
copy "%%a" "!target!"
)
Gruß jodel32
LÖSUNG 02.02.2016, aktualisiert um 22:43 Uhr
Hallo,
oder auch so (falls die Anfangsbuchstaben nicht unbedingt Großbuchstaben sind):
Die Batchdatei kann im Verzeichnis mit deinen Dateien liegen, ohne selbst kopiert zu werden.
Grüße
rubberman
oder auch so (falls die Anfangsbuchstaben nicht unbedingt Großbuchstaben sind):
@echo off &setlocal
set ^"LF=^
^" Die Leerzeile oben ist kritisch - Nicht entfernen!
for /f "delims=" %%i in ('dir /a-d /b') do if "%%i" neq "%~nx0" (
set "file=%%i"
set "first="
for /f skip^=1^ delims^=^ eol^= %%i in (
'2^>^&1 cmd /von /c fc "!LF!!file:~,1!!LF!" nul'
) do if not defined first set "first=%%i"
setlocal EnableDelayedExpansion
if not exist "!first!\" md "!first!"
copy /y "!file!" "!first!\"
endlocal
)
Grüße
rubberman
LÖSUNG 02.02.2016 um 18:37 Uhr
THX für deine Bemühungen!!
Ich habe die Suchfunktion nochmals benutzt, aber nichts gefunden, was meinem Problem entspräche.
Leider funktioniert diese Lösung bei mir nicht, es wird nichts kopiert:
@echo off & setlocal enabledelayedexpansion
set "quelle=f:\1-21\ein-ordner"
set "ziel=f:\1-21\2016"
for %%a in ("%quelle%") do (
set "name=%%~na"
set "target=%ziel%\!name:~0,1!"
if not exist "!target!" md "!target!"
copy "%%a" "!target!"
)
Irgendetwas muss ich offensichtlich falsch machen.
Ciao
symei3
Ich habe die Suchfunktion nochmals benutzt, aber nichts gefunden, was meinem Problem entspräche.
Leider funktioniert diese Lösung bei mir nicht, es wird nichts kopiert:
@echo off & setlocal enabledelayedexpansion
set "quelle=f:\1-21\ein-ordner"
set "ziel=f:\1-21\2016"
for %%a in ("%quelle%") do (
set "name=%%~na"
set "target=%ziel%\!name:~0,1!"
if not exist "!target!" md "!target!"
copy "%%a" "!target!"
)
Irgendetwas muss ich offensichtlich falsch machen.
Ciao
symei3
LÖSUNG 02.02.2016 um 18:47 Uhr
LÖSUNG 02.02.2016, aktualisiert um 22:43 Uhr
Macht ja nix 
Wenn du die Batchdatei nicht im Quellverzeichnis haben willst, dann so:
Grüße
rubberman
Wenn du die Batchdatei nicht im Quellverzeichnis haben willst, dann so:
@echo off &setlocal
set "quelle=f:\1-21\ein-ordner"
set "ziel=f:\1-21\2016"
set ^"LF=^
^" Die Leerzeile oben ist kritisch - Nicht entfernen!
for /f "delims=" %%i in ('dir /a-d /b "%quelle%"') do (
set "file=%%i"
set "first="
for /f skip^=1^ delims^=^ eol^= %%i in (
'2^>^&1 cmd /von /c fc "!LF!!file:~,1!!LF!" nul'
) do if not defined first set "first=%%i"
setlocal EnableDelayedExpansion
if not exist "!ziel!\!first!\" md "!ziel!\!first!"
copy /y "!quelle!\!file!" "!ziel!\!first!\"
endlocal
)
rubberman
LÖSUNG 02.02.2016 um 19:07 Uhr
LÖSUNG 02.02.2016, aktualisiert um 22:43 Uhr
LÖSUNG 02.02.2016 um 21:08 Uhr
Hab ich mir schon gedacht. 
Vielen Dank für deine Geduld!! Werde dein Script jetzt auch noch probieren.
Das Script von rubbermann läuft wie Schmitz' Katze!!!
Ich hätte an euch beiden nur noch eine kleine Frage:
Bei Sonderzeichen (z.B. Álvarez, Çelik, Österreich) werden neue Ordner erstellt, was mich nicht sonderlich stört, da ich diese Ausnahmefälle per Hand einsortieren kann.
Oder ist es ohne großen Aufwand möglich, auch diese Option mit einzubauen, d.h., Álvarez unter A - Çelik unter C etc.?
Ciao
symei3
Vielen Dank für deine Geduld!! Werde dein Script jetzt auch noch probieren.
Das Script von rubbermann läuft wie Schmitz' Katze!!!
Ich hätte an euch beiden nur noch eine kleine Frage:
Bei Sonderzeichen (z.B. Álvarez, Çelik, Österreich) werden neue Ordner erstellt, was mich nicht sonderlich stört, da ich diese Ausnahmefälle per Hand einsortieren kann.
Oder ist es ohne großen Aufwand möglich, auch diese Option mit einzubauen, d.h., Álvarez unter A - Çelik unter C etc.?
Ciao
symei3
LÖSUNG 02.02.2016, aktualisiert um 22:43 Uhr
LÖSUNG 02.02.2016 um 22:43 Uhr