Supportnet / Forum / BS-Sonstige
Del Befehl
Frage
Hallo Ihr Dossler im weiten WWW Land,
folgendes Problem: Ich kopiere mit Xcopy und den dazugehörigen Schaltern aus einem Verzeichnis der Festplatte Dateien auf ein Wechselmedium.
Funktioniert ohne Probleme.
Nun möchte ich die Dateien, die ja noch immer auf meiner Fetsplatte sitzen löschen.
Auch kein Problem, aber ich möchte das Löschen auch selbsttätig ausführen.
Da meine Batch nachts laufen soll und ich nicht jedes mal den Del Befehl mit Y bestätigen kann.
Wer weis Rat??
Michael
Antwort 1 von meyer1
Darf das Verzeichnis auf der Platte gelöscht werden?
Wenn ja, Beispiel:
Copy D:\Ordner\*.* E:\Ordner
RD /S /Q "D:\Ordner"
Mkdir D:\Ordner
Exit
Wenn ja, Beispiel:
Copy D:\Ordner\*.* E:\Ordner
RD /S /Q "D:\Ordner"
Mkdir D:\Ordner
Exit
Antwort 2 von Lutz1965
Hallo Michael
den Befehl den suchst, müßte "choice" sein
Schaue im link, weiter unten auf der Seite...
http://www.free.pages.at/baermaus/computer/dos.html
Gruss
Lutz
den Befehl den suchst, müßte "choice" sein
Schaue im link, weiter unten auf der Seite...
http://www.free.pages.at/baermaus/computer/dos.html
Gruss
Lutz
Antwort 3 von chucky
@Lutz1965,
mit choice hat man nur die Qual der Wahl, und der User muss da was machen (dient ja zur Abfrage).
Beispiel:
@ mibri,
Für eine Batch-Datei kann man den Deltree-Befehl nehmen- wichtig ist aber, der Befehl muss vorhanden sein und den Pfad zeigen.
Wenn man noch den Pfad zum Befehl mit Path zeigt, ist die Pfadangabe zum Befehl nicht nötig.
Chucky
mit choice hat man nur die Qual der Wahl, und der User muss da was machen (dient ja zur Abfrage).
Beispiel:
choice Datei löschen?/tn,99
if errorlevel 2 goto eingabe
del c:\test\xy
goto ende
:eingabe
echo Die Datei wurde nicht gelöscht!!
echo Glueck gehabt!!
goto ende
:ende
@ mibri,
Für eine Batch-Datei kann man den Deltree-Befehl nehmen- wichtig ist aber, der Befehl muss vorhanden sein und den Pfad zeigen.
c:\windows\command\deltree /y x:\test
X=Laufwerk,Pfad
Wenn man noch den Pfad zum Befehl mit Path zeigt, ist die Pfadangabe zum Befehl nicht nötig.
Chucky
Antwort 4 von manei
Hallo,
wenn Du genau die Dateien, die Du in ein anderes Verzeichnis kopierst auf dem Quellverzeichnis löschen willst, ist es doch am einfachsten, diese Dateien mit "move" zu verschieben, dann sind sie im Quellverzeichnis auch nicht mehr vorhanden.
Du kannst dies mit z.B.
move /y C:\Verzeichnispfad\Ordnerx\*.* D:\Verzeichnispfad\Ordnery>nul
ganz einfach erledigen.
Ansonsten mußt Du, wenn Du das mit xcopy und anschließendem Löschen in einer Batch erledigen willst, das mit
start /w xcopy A\*.* B
deltree /y A\*.*
erledigen. (Mit A und B ist der gesamte Verzeichnispfad+Ordner gemeint)
Da in einer Batch normal nur der Befehl aufgerufen wird und ohne Abwarten der Ausführung dieses Befehls zur nächsten Zeile gesprungen wird, ist Dein Verzeichnis gelöscht, bevor es kopiert ist, denn sowohl del als auch deltree arbeiten schneller als xcopy.
Dafür mußt Du die Zeile von xcopy mit start /w(ait) aufrufen, damit weis der Batchinterpreter, daß hier gewartet werden muß, bis der xcopx-Befehl abgearbeitet ist.
MfG maneich
wenn Du genau die Dateien, die Du in ein anderes Verzeichnis kopierst auf dem Quellverzeichnis löschen willst, ist es doch am einfachsten, diese Dateien mit "move" zu verschieben, dann sind sie im Quellverzeichnis auch nicht mehr vorhanden.
Du kannst dies mit z.B.
move /y C:\Verzeichnispfad\Ordnerx\*.* D:\Verzeichnispfad\Ordnery>nul
ganz einfach erledigen.
Ansonsten mußt Du, wenn Du das mit xcopy und anschließendem Löschen in einer Batch erledigen willst, das mit
start /w xcopy A\*.* B
deltree /y A\*.*
erledigen. (Mit A und B ist der gesamte Verzeichnispfad+Ordner gemeint)
Da in einer Batch normal nur der Befehl aufgerufen wird und ohne Abwarten der Ausführung dieses Befehls zur nächsten Zeile gesprungen wird, ist Dein Verzeichnis gelöscht, bevor es kopiert ist, denn sowohl del als auch deltree arbeiten schneller als xcopy.
Dafür mußt Du die Zeile von xcopy mit start /w(ait) aufrufen, damit weis der Batchinterpreter, daß hier gewartet werden muß, bis der xcopx-Befehl abgearbeitet ist.
MfG maneich
Antwort 5 von manei
Hallo,
noch etwas.
Du kannst natürlich auch mit dem del-Befehl arbeiten. Bei z.B.
del A\*.*>nul oder
echo j|del A\*.*
entfällt die Abfrage, sie wird sozusagen ins Nichts übertragen bzw. mit der Pipe übergeben.
MfG maneich
noch etwas.
Du kannst natürlich auch mit dem del-Befehl arbeiten. Bei z.B.
del A\*.*>nul oder
echo j|del A\*.*
entfällt die Abfrage, sie wird sozusagen ins Nichts übertragen bzw. mit der Pipe übergeben.
MfG maneich
Antwort 6 von Traumtaenzer
Paar kleine Korrekturen:
> "Da in einer Batch normal nur der Befehl aufgerufen wird und ohne Abwarten der Ausführung dieses Befehls zur nächsten Zeile gesprungen wird, ..."
Nee nee, dat war noch nie so. Die Batch wartet schön brav bis zum Ende des vorherigen xcopy-Befehls.
> "Bei z.B. del A\*.*>nul ... entfällt die Abfrage, sie wird sozusagen ins Nichts übertragen ..."
Könnte ein kleiner Reinfall werden, denn die Abfrage entfällt dabei natürlich nicht. Sie wird durch die Umleitung zum nul-device nur nicht angezeigt. Die Batch würde einfach ohne jede Meldung stehenbleiben. Das mit der Übergabe von "j" funzt aber.
Auch wenn man viel weiß, sollte man doch immer testen, was man vorschlägt. Sonst verwirrt man am Ende den Hilfesuchenden eher ;-)
mfg, Traumtänzer
> "Da in einer Batch normal nur der Befehl aufgerufen wird und ohne Abwarten der Ausführung dieses Befehls zur nächsten Zeile gesprungen wird, ..."
Nee nee, dat war noch nie so. Die Batch wartet schön brav bis zum Ende des vorherigen xcopy-Befehls.
> "Bei z.B. del A\*.*>nul ... entfällt die Abfrage, sie wird sozusagen ins Nichts übertragen ..."
Könnte ein kleiner Reinfall werden, denn die Abfrage entfällt dabei natürlich nicht. Sie wird durch die Umleitung zum nul-device nur nicht angezeigt. Die Batch würde einfach ohne jede Meldung stehenbleiben. Das mit der Übergabe von "j" funzt aber.
Auch wenn man viel weiß, sollte man doch immer testen, was man vorschlägt. Sonst verwirrt man am Ende den Hilfesuchenden eher ;-)
mfg, Traumtänzer

