henradavis

Ordner verschieben anhand des ersten Buchstaben

Hallo liebe Leute,
nach langen suchen konnte ich leider immer noch kein Ergebnis finden, deshalb wende ich mich an Euch.

Ich möchte gerne mehrere Ordner verschieben in andere alphabetische Ordner
z.B.

a1
a2
a3
b1
b5
b7
cba
cag
c2
d1
d2
d3
usw...

das Ergebnis sollte dann so aussehen:
alphabetische Ordner werden erstellt
[A-C]
[D-F]
[G-I]
usw...

anschließend werden die Ordner verschoben also a1 bis c2 sind in den Ordner A-C und d1 bis ... sind in den Orner D-F usw...
Ich hoffe es ist halbwegs verständlich.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 191440

Url: https://administrator.de/forum/ordner-verschieben-anhand-des-ersten-buchstaben-191440.html

Ausgedruckt am: 19.07.2025 um 18:07 Uhr

Lochkartenstanzer
Lochkartenstanzer 19.09.2012 um 08:22:21 Uhr
Moin,

bash installieren und dann einfach tippen:

mv -iv [a-cA-C]* A-C
mv -iv [d-fD-F]* D-F
...

lks
pieh-ejdsch
pieh-ejdsch 19.09.2012 aktualisiert um 14:19:18 Uhr
moin henradavis,

in der CMD-Line könnte es so gehen:
for %a in ("A B C" "D E F" "G H I" "J K L" "M N O" "P Q R" "S T U" "V W  X" "Y Z Z") do @for /f "tokens=1-3" %b in (%a) do @for /d %a in (%b* %c* %d*) do @(ifnot exist "%b-%d" @echo md "%b-%d") &@echo move "%a" "%b-%d"  

Das Z zweimal, sonst gehts nicht auf und der Letzte Ordner hieße "Y-".
@echo zeigt Dir was es täte, wenn Du es entfernst.

Gruß Phil
henradavis
henradavis 19.09.2012 aktualisiert um 19:47:37 Uhr
Vielen Dank, das geht schon in die richtige Richtung.
Leider habe ich nur Windows 8 x64, und dort kommt folgende Fehlermeldung:

Der Befehl "ifnot" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Nachtrag: "ifnot" einfach auseinander schreiben "if not" dann funktioniert es!
Besteht auch die Möglichkeit dies in ein Batch zu packen oder eventuell komplettes Alphabet zu erstellen und dann dort die Ordner reinschieben?
z.B. aaa1, aa2 adsd --> A
bbb3, baddf, bbbb1 --> B
ccc1, ccad, ccc3 --> C

und ich würde gerne noch Zahlen einbauen also wenn 0-9 vorne steht dann sollten die Ordner dort hin verschoben werden.

Habe es soeben getestet, es funktioniert leider nicht.
Teilweise funktioniert es, teilweise nicht. Die CMD Eingabe schmeißt teilweise die Dateien aus dem Ordner.
pieh-ejdsch
pieh-ejdsch 19.09.2012 um 20:44:20 Uhr
moin,

ifnot ist ein Fehler meinerseits - entstand beim Entfernen der Zeilenumbrüche nach dem kopieren aus der CMD-Line.

Für die Batch müssen alle Prozentzeichen der SchleifenVariablen verdoppelt werden.
Zum erstellen der Ordner ist eine andere Vorgehensweise erforderlich/besser:
@echo off
setlocal disabledelayedexpansiopn
set "Quelle=D:\Daten"  
pushD "%Quelle%"  

for /d %%i in (*) do (
  set "Ordner=%%i"  
  setlocal enabledelayedexpansion
  if not exist "!Ordner:~0,1!" md "!Ordner:~0,1!"  
  @echo move "!Ordner!" "!Ordner:~0,1!"  
  endlocal
)
popD
Hier zeigt Dir @echo auch was es täte, wenn Du es entfernst.

Gruß Phil