Sicherheitsabfragen umgehen?
-
Ich hab ein Konsolenprogramm geschrieben, was einige Dateien und Verzeichnisse anlegt, die jedoch nach Beenden des Programms nicht mehr benötigt werden, sprich ich möchte einige Verzeichnisse samt Inhalt löschen. system("del dir") hat mir weitergeholfen, auch wenn es nicht "sauber" ist
Das Problem ist nur, dass ich dann die Sicherheitsabfrage zum löschen bestätigen muss. Das ist nicht gut, da das Programm über Nacht ohne meinen Eingriff laufen soll.Gibt es einen Weg, diese Abfragen zu umgehen?(Wär ja eigentlich schlecht, man könnte allen möglichen Leuten total die Festplatten ruinieren...).Oder gibt es einen anderen Weg, Ordner samt Inhalt zu löschen? Für weiterführende Links etc. wäre ich genauso dankbar wie für eine direkte Antwort.
-
BeNNeR schrieb:
Ich hab ein Konsolenprogramm geschrieben, was einige Dateien und Verzeichnisse anlegt, die jedoch nach Beenden des Programms nicht mehr benötigt werden, sprich ich möchte einige Verzeichnisse samt Inhalt löschen. system("del dir") hat mir weitergeholfen, auch wenn es nicht "sauber" ist
Das Problem ist nur, dass ich dann die Sicherheitsabfrage zum löschen bestätigen muss. Das ist nicht gut, da das Programm über Nacht ohne meinen Eingriff laufen soll.Gibt es einen Weg, diese Abfragen zu umgehen?(Wär ja eigentlich schlecht, man könnte allen möglichen Leuten total die Festplatten ruinieren...).Oder gibt es einen anderen Weg, Ordner samt Inhalt zu löschen? Für weiterführende Links etc. wäre ich genauso dankbar wie für eine direkte Antwort.
del dir fragt also?
je nach dos isses anders.
a) echo y | del diroder auf nem "deutschen dos"
b) echo j | del dirmach ein dos hat nen frag-mich-nicht-parameter
c) del -Q diroder
d) del -Y dir
wenn das alles nicht paßt, vielleicht hat dein dos den befehle) deltree, der so nen parameter hat? oder du schiebst mit
f) move (falls vorhanden) den kram in ein verzeichnis, das in der autoexec.bat geputzt wird.
g) oder host dir die unx-utils und benutzt rm.
h) oder baust dir in Coder C++ eine rm-r.exe, so eine hatte ich zu dos-zeiten immer.
oder du löscht per dos-schleife
i) for %f in (dir\.) do del %foder du merkst dir, welche dateien du angelegt hast und löscht sie dann einbfach mit
j) unlink()k) oder DeleteFile()
l) oder system("del ...
oder du erzeugst die files mit
m) CreateFile und dem netten paramater, der sagt, daß die files automatisch gelöscht werden sollen, wenn du den handle verlierst (gut bei unvorhergesehenen programmabbrüchen und wie ich ms kenne auch gut beim vermeiden von plattenschreibungen).n) oder legt die dateien gleich im temp-verzeichnis an, das wird ja hin und wieder mal geputzt
o) oder du legst die dateien gleich auf einer ramdisk an
leider keine gute idee dabei, aber vielleicht hilft es dir, beim weiterzusuchen.
-
danke erstmal. a)-f) funktionieren schonmal nicht, aber du hast ja noch einige andere möglichkeiten aufgezählt, an denen ich mich mal versuchen werde ( einige sind mir allerdings zu hoch...)
-
volkard schrieb:
c) del -Q dir
Müsste das nicht "del /Q dir" heißen?
-
CStoll schrieb:
volkard schrieb:
c) del -Q dir
Müsste das nicht "del /Q dir" heißen?
Sowas hab ich auch gelesen ( ich seh nur nicht durch mit den ganzen verschiedenen Versionen).Ich habe beide Varianten probiert und keine von beiden funktioniert.Aber ich habe mich entschlossen dass es ausreicht, nur die Dateien und nicht noch das Verzeichnis zu löschen, insofern ist mein Problem schon "gelöst". Danke nochmal.
-
CStoll schrieb:
volkard schrieb:
c) del -Q dir
Müsste das nicht "del /Q dir" heißen?
ja, müßte es.
-
Wieso nicht remove("file.txt");
mit remove(const char*) kannst du Verzeichnisse und Dateien löschen.
...ist in stdio.h definiert
==>also:#include <stdio.h> int main(int argc , char* argv[]) { FILE* pFile = fopen("datei.txt" , "w+"); /* bla bla bla ... Dateioperationen ... bla bla bla */ fclose(pFile); remove("datei.txt"); }
-
BeNNeR schrieb:
Aber ich habe mich entschlossen dass es ausreicht, nur die Dateien und nicht noch das Verzeichnis zu löschen, insofern ist mein Problem schon "gelöst". Danke nochmal.
ach, ich dachte, du meinst die sicherheitsabfrage "möchten sie die dateien wirklich löschen?". meinstest du etwa die "kann das nicht löschen, weil nocwas drin ist."?
meine vielen antworten sollten eigentliuch andeuten, daß du nicht verraten hast, ob dos oder windows und wenn windows, welches windows denn das ziel sein soll.
del /S verzeichnis
würde bei winxp ein verzeichnis und die ganzen dateien drin löschen.
-
@Volkard
Jetzt verlier ich langsam den ÜberblickAlso ich meinte schon die "möchten Sie wirklich löschen", aber irgendwie gibts es ja verschiedene Befehle, ich komm dann beim googlen immer arg durcheinander :D. Um diese Frage noch zu klären, das ganze soll in einer Konsole unter Win XP laufen.
Ich werd es nochmal mit del/S Verzeichnis versuchen.
( Hab es jetzt versucht, und hier eben wieder das Problem: die Sicherheitsabfrage.Also unter Linux hat doch einfach ein "-y" drangehangen oder sowas, wenn ich mich nicht alles täuscht...gibts sowas nicht auch für die Konsole?
@alex89ru: "remove" brachte mir eben ( wenn ich mich jetzt recht entsinne ) solch eine Sicherheitsabfrage ein, die ich umgehen möchte.
-
BeNNeR schrieb:
unter Win XP laufen.
rd /Q /S verzeichnis
-
Jetzt klappt es definitv, vielen Dank nochmal