idaence
Goto Top

Große Daten Menge mit Batch sortieren

Hallo Admins,

ich habe eine sehr große Datenmenge (700.000 / DAT-Dateien).

Jetzt will ich alle 10.000 Dateien einen Ordner erstellen und 10.000 Dateien einsortieren ich dachte an Batch doch,

wenn jemand eine andere Idee oder schnelle Lösung hat ist das auch kein Problem.

Die Daten sind so benannt 5000001 - 5350000 und das gleiche mit einer 6 davor 6000001 - 6350000.

Gibt es die Möglichkeit das in Batch zu schreiben?

Danke schonmal im Vorraus

Gruß iDänce

Content-ID: 144362

Url: https://administrator.de/contentid/144362

Ausgedruckt am: 19.11.2024 um 13:11 Uhr

bastla
bastla 08.06.2010 um 11:21:12 Uhr
Goto Top
Hallo iDaence!

Die aus meiner Sicht einfachste Umsetzung könnte als (ungetesteter) Batch etwa so aussehen:
@echo off & setlocal
set "Quelle=D:\Viele DATeien"  
set "Ziel=D:\Ordner für viele DATeien"  

for /L %%i in (500,1,535) do (
    md "%Ziel%\%%i0000" 2>nul  
    echo move "%Quelle%\%%i*.dat" "%Ziel%\%%i0000\"  
)
for /L %%i in (600,1,635) do (
    md "%Ziel%\%%i0000" 2>nul  
    echo move "%Quelle%\%%i*.dat" "%Ziel%\%%i0000\"  
)
pause
Einschränkung: So würden ("werden" erst, wenn das aus Sicherheitsgründen vor dem jeweilige "move" platzierte "echo" entfernt ist) die Dateien 5000001.DAT bis (nur) 5009999.DAT in den Ordner 5000000, die Dateien 5010000.DAT bis 5019999.DAT nach 5010000, etc) verschoben; die Zielordner werden schon beim ersten Durchlauf erstellt.

Grüße
bastla
pieh-ejdsch
pieh-ejdsch 08.06.2010 um 11:23:12 Uhr
Goto Top
moin iDaence,

sollen die *.DAT nach einem bestimmten System in die 70 Ordner sortiert werden

also OrdnerX von "5000001 - 5350000.DAT" bis "500001 - 5359999.DAT"
und dann OrndnerX+1 "5000001 - 5360000.DAT" bis "500001 - 5369999.DAT"

oder von der kleinsten bis zur größten Zahl.DAT alle 10.000 Dateien Ohne ein jegliches Sortiersystem umgelagert werden?

[Edit]
hmmm,
Da hab ich wohl die Dateibezeichnung falsch verstanden
[/Edit]
Gruß Phil
iDaence
iDaence 08.06.2010 um 11:50:53 Uhr
Goto Top
@bastla sehr gutes Script werde es dann ausprobieren und melde mich mit Ergebnissen

Danke für die Mühe


Gruß iDänce
iDaence
iDaence 12.06.2010 um 00:15:37 Uhr
Goto Top
@bastla habe dein Script noch ein wenig modifiziert

@REM ------- BEGIN Dateien verschieben ----------------

@setlocal 
@echo off 
set Quelle=K:\MessdatenAUDI
set Ziel=K:\AUDI_DENSO
set iStartWert=500 
set iEndWert=535

set Quelle2=K:\MessdatenAUDI
set Ziel2=K:\AUDI_BOSCH
set iStartWert2=600
set iEndWert2=635

rem md %Ziel%

for /L %%j in (5,1,6) do (
   if %%j == 5 (
      echo %%j
      REM ----
      echo %Quelle%
      echo %Ziel%
      echo %iStartWert%
      echo %iEndWert%
      for /L %%i in (%iStartWert%,1,%iEndWert%) do (
         @echo %%i %Ziel%\%%i0000        
         rem MD - Befehl, Verzeichnisse anlegen
         MD %Ziel%\%%i0000 2>nul
         rem MOVE - Befehl, Daten verschieben
         MOVE "%Quelle%\%%i????P.DAT" "%Ziel%\%%i0000\" 2>nul  
         )
   )else (
      echo %%j
      REM ----
      echo %Quelle2%
      echo %Ziel2%
      for /L %%i in (%iStartWert2%,1,%iEndWert2%) do (
         rem MD - BEfehl, Verzeichnisse anlegen
         MD %Ziel2%\%%i0000 2>nul
         rem MOVE - Befehl, Daten verschieben
         MOVE "%Quelle2%\%%i????P.DAT" "%Ziel2%\%%i0000\" 2>nul  
         )
   )

   )

echo FERDSCH...

[Edit Biber] Codeformatierung. [/Edit]