tobiasbessenreither
Goto Top

move verschiebt falsche Dateien

move 1012*.dft 1012 Verschiebt nicht nur Dateien die mit 1012 beginnen sondern auch einige aus dem bereich 1020 bis 1026

Hi,

Hab da n zimlich seltsames Problem. Also jedenfalls mir is sowas noch net passiert.

Kurz zur vorgeschichte. Wir haben nen Server auf da liegen in nem Ordner an die 64000 .dft Dateien. Unterteilt werden die nach den ersten 4 Stellen. Die Reichen etwa von 1000 bis 1600
Nach den 4 Stellen kommen noch zwischen 4 und 6 andere Zahlen und Eventuell noch _A oder sonstige zusätze+ Endung .dft natürlich.
also z.b. 100000000.dft (fortlaufend).

Jetzt sollen zwecks Ordnung die Dateien in Ordner gepackt werden die entsprechen der ersten 4 stellen heißen:
Also obige Beispielzahl in den ordner 1000
100100000.dft in den ordner 1001 usw.

Wollte das Gott sei dank erst mal in nem Testordner laufen lassen face-wink *is ja logisch* und hab mal des hier gebastelt.

@echo off
echo Start:
set start=1000
set /p start=
echo Ende:
set ende=1050
set /p ende=
cls
echo Verschiebe Dateien von %start% bis %ende%.
echo Taste druecken um zu starten.
:anfang
cls
echo Verschiebe Dateien von %start% bis %ende%.
mkdir %start%
cscript sleep05.vbs > Nul
echo Verschiebe Bereich %start% >>log.txt
move %start%* %start% >>log.txt
echo (Verschoben)
echo warte.....
cscript sleep5.vbs > Nul
set /a start=start+1
if %ende% GTR %start% goto anfang
pause


Man gibt also den Bereich an welcher schon voreingestellt ist fals man was leer lässt.
Dann geht der zähler halt alle Bereiche durch erzeugt nen Ordner und Packt da mit:
move %start%* %start% >>log.txt
Alles rein. So die graue Theorie. Klappt net, mist.

Jetzt hats mir neben den 1012 er Dateien auch noch folgende Reinkopiert.
1020100040.dft, 1020100041.dft, 1020100042.dft, 1021100040.dft, ..., 1029100041.dft
Hab bis jetzt noch keinen Zusammenhang mit den Falsch kopierten und der richtigen zahl finden können. face-sad
Des Passiert bei mehreren Ordnern. Allerdings auch Eher zufällig.

Vieleicht weiß ja jemand von euch wie man des flicken könnte oder woran des liegt. Letzeres währ mir natürlich lieber. Will ja was lernen ^^.

mfg
Tobi


ps.
Sollte bereits ein Post mit dem Problem irgendwo sein Reicht mir natürlich ein Link dorthin.
Hab zwar gesucht aber nix gefunden des mir geholfen hätte.
Batch-Datei schreiben hat auch nix gebracht.

Content-Key: 40830

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

Printed on: April 25, 2024 at 13:04 o'clock

Member: Biber
Biber Sep 26, 2006 at 05:37:28 (UTC)
Goto Top
Moin TobiasBessenreither,
willkommen im Forum.

Ich habe das schon mal irgendwo aus den Augenwinkeln mitbekommen, dass sich der Move-Befehl bei großen Datenmengen ein bisschen zu verhaspeln scheint.
Sieht nach einem ganz normalen M$-Bug aus - ich denke mal, M$ hat ja aufgrund der treuen und kritiklosen Kundschaft wenig Leidensdruck, eine QS-Abteilung aufzubauen.

Ich würde zumindest nicht versuchen, in der Erscheinungform dieses Bugs eine Regelmäßigkeit oder Systematik finden zu wollen - finde lieber einen Workaround.

Ich würde von der Strategie her ähnlich vorgehen wie hier beschriebenUnterordner auf Basis eines Teils des Dateinamens erstellen - Dateien da rein verschieben .
Sprich: die Datenmenge "portionieren".
Beispiel: (durchaus in einer FOR..IN..DO..-Anweisung) die Prüfung:
... if exist 1012*.* (
if not exist %zielVerz%\1012 md %zielVerz%\1012
for %%i in (1012*.*) do move %%i %zielVerz%\1012\
)

und dort außen herum eine Schleife
... 
for /L %%a in (1000,1,1600) do (
 if exist %%a*.* (
     if not exist %zielVerz%\%%a md %zielVerz%\%%a
     for  %%i in (%%a*.*) do move %%i  %zielVerz%\%%a\ 
))
...das wäre das Rohgerüst.
Erscheint mir Erfolg versprechender als dem Move-Befehl ein paar 10000 Dateien per Wildcards zu vergeben.

HTH Biber
Member: TobiasBessenreither
TobiasBessenreither Sep 26, 2006 at 05:52:37 (UTC)
Goto Top
Ok, Danke schonmal werds mal probieren.
Allerdings hatte ich in meinem Testordner nur 51 Dateien. Auf wunsch setzt ich mal die log hier rein. Aber is halt ziemlich groß.

Egal, probiers ez erst mal mit FOR.

mfg Tobi

Also habs jetzt ausprobiert:
Das Ergebniss war das jetzt andere Ordner betroffen sind.

Hab jetzt auch noch ein bischen rumprobiert und festgestellt das die Dateien auch gefunden werden wenn man per dir nach den ersten 4 buchstaben sucht. Kann das was mit den Wildcards zu tun haben. Währ für mich die einzige logische schlussfolgerung.
Dann auch gleich die nächste Frage: Gibt es sowas wie Regex für batch? Rechne mal mit nein.
Ansonsten muss ich mich mal nach nem Alternativprogramm umschaun.
Member: TuXHunt3R
TuXHunt3R Jul 20, 2007 at 08:17:39 (UTC)
Goto Top
Versuchs mal mit robocopy. Mit dem Parameter /MOVE kannst du die Dateien verschieben. Diese Lösung wäre viel stabiler als mit dem Windows-Befehl