1.6k Aufrufe
Gefragt in Windows98 von
Hallo,
mir stellt sich folgende Aufgabe:
Ich möchte (mit W98) ein Verzeichnis per Xcopy/DOS-Batch überschreiben, und zwar so, dass im Zielverzeichnis alle Dateien gelöscht werden, die nicht im Quellverzeichnis stehen. Gibt es dafür einen entsprechenden Schalter? (bisher hatte ich es so gemacht, dass in der Batch erst einmal per deltree /y "<Laufwerksbuchstabe:>\<Zielverzeichnis-Namen>*.*" das Zielverzeichnis komplett gelöscht wurde, jedoch fragmentiert dies die Festplatte ziemlich stark...)
Gruß

4 Antworten

0 Punkte
Beantwortet von joshuan Mitglied (545 Punkte)
Hm. Also bin kein Experte aber ich glaub so wie dus jetz machen willst fragmentiert es noch mehr.
0 Punkte
Beantwortet von
Ich weiß nicht...?
Mir bleibt da auch nur der Glaube etwas zu wissen, was womöglich gar nicht stimmt...
Meine Überlegung:
- Wenn ein Verzeichnis überschrieben wird, werden die Bits und Bytes auf die gleichen Sektoren geschrieben (keine Fragmentierung)
- Wenn ein Verzeichnis erst gelöscht- und neu geschrieben wird, so landen die Daten irgendwo auf den nächstbesten Sektoren (Fragmentierung)

Ich kann mich natürlich irren und lasse mich gern eines besseren belehren.

Aber wenn nur die überflüssigen Dateien im Ziel gelöscht werden müssten, so hätte das natürlich den Vorteil, das der Vorgang wesentlich schneller wäre (statt erst das gesamte Ziel zu löschen und dann erneut neu zu schreiben) - das nennt sich, glaube ich, "Synchronisieren".

Vielleicht geht das auch mit Skripten, aber davon habe ich keine Ahnung, denn als Einfachuser habe ich lediglich gelernt, simple DOS-Batches zu schreiben, die ja wirklich keine großen Kenntnisse erfordern. Und so würde ich das gerne per DOS machen, in der Hoffnung, dass es entsprechende Befehle bzw. Schalter zum Kopieren gibt, um alle Dateien im Ziel löschen, die nicht in der Quelle vorkommen...

Gruß
0 Punkte
Beantwortet von joshuan Mitglied (545 Punkte)
Also ich glaub es wird immer von vorn nach hinten gesucht wo freier Platz is. Egal wenn der Platz auch kleiner is als wie die Datei wo geschrieben werden soll. Also wird sie halt fragmentiert.
Also meine Theorie wär so. Du krigst Fragmentierung wenn du auf ne HDD schreiben tust wo viele kleine Löcher hat. Mehr als wie wenn sie wenig aber grosse Löcher hat. Weil da tun die neuen Datein besser rein passen.
Wenn du immer Datein mitten drinne löschen tust kriegst du halt viele kleine Löcher mit die Zeit wo nich ohne Fragmentierung zu gemacht werden können.
Zb wenn auf der HDD NUR dein Backup wär und du tust immer ALLE löschen vorher dann kriegste nie Fragmentierung. In hundert Jahren nich. Aber so wie dus jetz machen willst kreigste trotzdem Fragmentierung.

- Wenn ein Verzeichnis überschrieben wird, werden die Bits und Bytes auf die gleichen Sektoren geschrieben (keine Fragmentierung)

Nur dann wenn Lücken da sind wo VOR dem Backup sind. Also wenn du Datein nach dem Backup löschen tust wo aber vor dem Backup gespeichert wurden. Also wenn du das Backup einmal löschen tust und dann Defragentierung machst und dann wieder das Backup schreiben und dann nie mehr Datein löschen wo älter sind (weiter vorne) als wie das Backup dann sollt das nich passiern.

- Wenn ein Verzeichnis erst gelöscht- und neu geschrieben wird, so landen die Daten irgendwo auf den nächstbesten Sektoren (Fragmentierung)

Nur dann wenn alle Datein immer noch gleich gross sind und keine fehlen. Also dann wenn du eigentlich kein Backup brauchen tust weil hat sich ja dann nix geändert. ;-) Sind die Datein grösser geworden (wär normal) dann reciht der alte Platz nich und der Rest muss wo anderster hin (fragmantierung).

Also ich weiss auch nich 100%. Die Profis werden uns aufklärn.

Ja mit VBSript geht das. Aber musst auf andre warten hab heut keine Zeit. Sorry.
...