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 sortieren und verschieben per Batch

Frage Entwicklung Batch & Shell

Mitglied: acid12

acid12 (Level 1) - Jetzt verbinden

14.09.2008, aktualisiert 17.09.2008, 10046 Aufrufe, 6 Kommentare

Ich will mehrere Verzeichnisse sortieren, derzeit sieht die Struktur etwa so aus:

  1. Ordner 1
    • 111.001
    • 111.002
    • 111.003
    • ...
    • 222.001
    • 222.002
    • 222.003
    • ...

Nun soll das ganze ordentlich sortiert werden, sprich es soll fuer jede Dateigruppe (111, 222, ...) ein eigener Ordner erstellt werden, in den die Dateien anschliessend verschoben werden, und das ganze natuerlich automatisch. Die Dateiendung ist dabei irrelevant, die Dateien sollen nur anhand des Namens sortiert werden.
Per Hand ist das leider eine etwas langfristige Aufgabe, da es sich um mehr als 100.000 Dateien handelt.

Kann mir eventuell jemand beim basteln einer passenden Batchdatei helfen? Oder kennt jemand ein Programm mit dem das funktioniert?
Mitglied: D3S3RT
14.09.2008 um 21:49 Uhr
solange es nicht zuviele untergruppen sind, würde ich einfach zb. mit totalcommander über num+ markieren und dann verschieben.

sinds zuviele sind die bash spezis gefragt.
Bitte warten ..
Mitglied: bastla
15.09.2008 um 07:44 Uhr
Hallo acid12 und willkommen im Forum!

Das sollte sich etwa so machen lassen (ungetestet):
01.
@echo off & setlocal 
02.
for /d %%v in ("D:\Startverzeichnis\*.*") do ( 
03.
    pushd "%%v" 
04.
    for %%i in (*.*) do ( 
05.
        if not exist "%%~ni\" md "%%~ni\" && echo Ordner erstellt: %%~dpni 
06.
        move "%%i" "%%~ni\" 
07.
08.
    popd 
09.
)
Damit werden alle im angegebenen Startverzeichnis liegenden Unterverzeichnisse "behandelt".

Grüße
bastla
Bitte warten ..
Mitglied: acid12
16.09.2008 um 22:25 Uhr
Hallo und danke fuer die schnelle Antwort.
Das tut leider nicht, liefert auch kein "Ordner erstellt" zurueck. Die Dateien sind nach wie vor unsortiert.

Leider stehe ich mit Batchdateien etwas auf Kriegsfuss. Koenntest du dir das vielleicht noch mal ansehen?
Schonmal danke im Vorraus.

Gruss
David
Bitte warten ..
Mitglied: bastla
17.09.2008 um 07:10 Uhr
Hallo acid12!
Koenntest du dir das vielleicht noch mal ansehen?
Habe ich mir nochmals angesehen ...

Mit dem Batch von oben als "Verschieben.cmd" und den Ordnern "D:\Startverzeichnis\ordner 1" und "D:\Startverzeichnis\ordner 2" sowie einigen darin enthaltenen Dateien nach dem von Dir dargestellten Muster erhalte ich folgenden Ablauf (die Zeilen 1, 15 und 21 enthalten nach dem "D:\>" die von mir getätigten Eingaben):
01.
D:\>dir D:\Startverzeichnis /s /b 
02.
D:\Startverzeichnis\ordner 1 
03.
D:\Startverzeichnis\ordner 2 
04.
D:\Startverzeichnis\ordner 1\111.001 
05.
D:\Startverzeichnis\ordner 1\111.002 
06.
D:\Startverzeichnis\ordner 1\111.003 
07.
D:\Startverzeichnis\ordner 1\222.001 
08.
D:\Startverzeichnis\ordner 1\222.002 
09.
D:\Startverzeichnis\ordner 2\333.001 
10.
D:\Startverzeichnis\ordner 2\333.002 
11.
D:\Startverzeichnis\ordner 2\444.001 
12.
D:\Startverzeichnis\ordner 2\444.002 
13.
D:\Startverzeichnis\ordner 2\444.003 
14.
 
15.
D:\>Verschieben.cmd 
16.
Ordner erstellt: D:\Startverzeichnis\ordner 1\111 
17.
Ordner erstellt: D:\Startverzeichnis\ordner 1\222 
18.
Ordner erstellt: D:\Startverzeichnis\ordner 2\333 
19.
Ordner erstellt: D:\Startverzeichnis\ordner 2\444 
20.
 
21.
D:\>dir D:\Startverzeichnis /s /b 
22.
D:\Startverzeichnis\ordner 1 
23.
D:\Startverzeichnis\ordner 2 
24.
D:\Startverzeichnis\ordner 1\111 
25.
D:\Startverzeichnis\ordner 1\222 
26.
D:\Startverzeichnis\ordner 1\111\111.001 
27.
D:\Startverzeichnis\ordner 1\111\111.002 
28.
D:\Startverzeichnis\ordner 1\111\111.003 
29.
D:\Startverzeichnis\ordner 1\222\222.001 
30.
D:\Startverzeichnis\ordner 1\222\222.002 
31.
D:\Startverzeichnis\ordner 2\333 
32.
D:\Startverzeichnis\ordner 2\444 
33.
D:\Startverzeichnis\ordner 2\333\333.001 
34.
D:\Startverzeichnis\ordner 2\333\333.002 
35.
D:\Startverzeichnis\ordner 2\444\444.001 
36.
D:\Startverzeichnis\ordner 2\444\444.002 
37.
D:\Startverzeichnis\ordner 2\444\444.003 
38.
 
39.
 
40.
D:\>
Zu Testzwecken könntest Du im Batch die Zeile 2 ändern auf:
01.
for %%v in ("D:\Dein Verzeichnis\Dein Ordner") do (
Damit werden nur die Dateien des einen angegebene Ordners verschoben.
(Achtung: Der Schalter "/d" nach dem "for" ist in diesem Fall nicht erforderlich.)

Sollte das noch immer nicht klappen, kannst Du als nächsten Schritt das "echo off" in ein "echo on" ändern und dann den Batch aus der Kommandozeile starten. Durch die Anzeige jedes Befehls kannst Du dann hoffentlich erkennen, wo etwas schief läuft ...

Grüße
bastla
Bitte warten ..
Mitglied: acid12
17.09.2008 um 16:39 Uhr
Hallo,

ok, funktioniert doch, gestern hats nicht geklappt, heute doch. Und das obwohl ich nichts am Script geaendert habe. Naja..

Vielen Dank, du hast mir vermutlich etliche Stunden Arbeit erspart!

Gruss
David
Bitte warten ..
Mitglied: bastla
17.09.2008 um 16:57 Uhr
Hallo acid12!
ok, funktioniert doch
Diese erfreuliche Tatsache könntest Du noch so dokumentieren ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

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 ...