Batch Ordner Löschen (Deistaller)

Hallo, ich möchte eine Batch datei erstellen.
Ich möchte das diese Batch Datei den Ordner und alle Dateien und Unterordner in dem die Batch gestartet wird Löscht.
ich möchte keinen Pfad angeben damit ich die Datei nicht jedes mal ädern muss.

Ich möchte kwasi einen Deinstaller shreiben Ohne viel aufwand.
(hab ein kleines Prog für mich geschrieben mit Installer und möchte dafür auch einen Deinstaller ohne viel aufwand.)

meine vorstellung Funktioniert nicht:

del *.* /f /s /q
del %CD% /f /s /q
rmdir %curpath% /f /s /q
rmdir %CD% /f /s /q

System: Win7 64bit
… mehr auf http://www.wer-weiss-was.de/app/query/display_query?..

Hallo Fragewurm,

Ich möchte das diese Batch Datei den Ordner und alle Dateien
und Unterordner in dem die Batch gestartet wird Löscht.
ich möchte keinen Pfad angeben damit ich die Datei nicht jedes
mal ädern muss.

Das geht nicht.

Die Batchdatei ist vom Betriebssystem (BS) geöffnet und kann deshalb nicht gelöscht werden, andenfalls wüsste das BS gar nicht wie die Befehle weiter gehen …
Selbiges gilt auch für den Ordner in welchem die Batch abgelegt ist.

MfG Peter(TOO)

Guten Tag,
Danke für die Antwort. Aber ich habe doch noch eine Frage. Wenn ich eine Batch Datei erstelle Mit Dem Befehl: " del *.* /f /s /q " Startet er mir die Batch File und Löscht diese und alle anderen im Dateien im Verzeichnis. und die Batch bleibt geöfnet.

Win7 Ulti. 64bit

Achso leider Löscht mir dieser Befehl nicht die Ordner die ich in diesem Verzeichnis habe.

Hallo, ich möchte eine Batch datei erstellen.
Ich möchte das diese Batch Datei den Ordner und alle Dateien
und Unterordner in dem die Batch gestartet wird Löscht.
ich möchte keinen Pfad angeben damit ich die Datei nicht jedes
mal ädern muss.

Ich möchte kwasi einen Deinstaller shreiben Ohne viel aufwand.
(hab ein kleines Prog für mich geschrieben mit Installer und
möchte dafür auch einen Deinstaller ohne viel aufwand.)

Hallo lettisches rotes Kreuz :smile:,

ich habe schon jahrelang nicht mehr rumgebatched.
Was Peter schreibt ist natürlich korrekt.

Installer klingt so als ob der auf Fremdrechnern laufen soll.
Meine Idee ist, beim Installieren erzeugst du ggfs. mit Echo
in einem ggfs. neu angegten Ordner die eigentliche Loesch.bat.
In deinen Ordner wo du anscheinend einige Dateien reinkopierst
erstellst du auch eine Deinst.bat.

Diese hat einzig die Zeile in sich wo sie in dem ihr bekannten
Ordner die Loesch.bat aufruft. Dabei übergibt sie als Parameter
ihren Ordnerpfad bzw. %curdir%.
In Loesch.bat kannste das dann mit %%1 auswerten.
Ggfs. anfangs der Loesch.bat noch eine Wartezeit einbauen.

Wenn mein ungetesteter Plan klappt braucht man nur diese
Deinst.bat starten. Diese startet dann die Lösch.bat.
Dann ist die Deinst.bat m.M. nach beendet und nicht mehr vom BS
blockiert.

Ich würde das zumindest ausprobieren und beim Testen sicherheitshalber
in die Loesch.bat nur reinschreiben daß sie in dem ihr übermittelten
Ordner die Datei Deinst.bat löschen soll.

Berichte bitte was geschah, ob alle deine Dateien futsch waren, der PC
anfing zu qualmen oder ob es gar funktionierte *gg*

Gruß
Reinhard

Guten Tag,

und danke für den Tipp.
leider sobald ich Die Deinstal bat ausführe (die den Pfad weitergeben soll und die eigendliche Löschbat starten soll.) Öfnet sich ein CMD Fenster mit dem Namen Löschbat und dem Richtigem Pfad. Aber er für kein Kommando aus das in der Löschbat steht.

Oder Hat Jemand eine Andere Idee für eine Deinstallation, mit einer Andere Programmiersprache? Ich kenne mich ein klein wenig mit VB aus aber wirklich nur ein klein wenig.

Oder Hat Jemand eine Andere Idee für eine Deinstallation, mit
einer Andere Programmiersprache? Ich kenne mich ein klein
wenig mit VB aus aber wirklich nur ein klein wenig.

Hallo LRK,

hast du denn VB5.0 oder VB6.0?
Dann frage deshalb mal im VB-Brett an. Rainer weiß sicher den Code.
Du brauchst ihn dann nur zu kompilieren.

Aber in der Theorie oder von richtigen programmiersprachen u.v.m. habe
ich keine Ahnung.
Ich persönlich vermute daß so eine VB.exe, besonders wenn sie klein
ist, nach Aufruf im Arbeitsspeicher ist und da abgearbeitet wird.

Wenn dem so ist so kann sie m.M.n. auch den Ordner wo sie
selbst drinsteht löschen. Sie hat ja compilierten Code.
Eine Batch, oder auch Vba, interpretieren, sie arbeiten also
Zeile für Zeile in sich ab.
Tja nun, wenn sie sich selbst gelöscht hätten sind die Zeilen weg.
Und Win verhindert wohl daß sie das tun können.

An hiesigen Kommentaren kannste ja erkennen ob ich falsch lag.

Zu deiner Lösch.bat. Ich bin mit der alten 8.3 Regel aufgewachsen.
Und Leerzeichen und Sonderzeichen wie ö waren untersagt.
Okay, 8.3 muß nicht mehr sein, obwohl, es zwaang die Leute
dazu sich Hirn zu machen über Dateinamen und Ordnernamen,
Ordnerstrukturen.

Ich nehme Loesch.bat, das klappt 100 %ig und nicht nur 98 %ig.

Achja, was ich eigentlich zu der .bat sagen wollte, setz doch
mal zu Anfang ein Echo Huhu, oder Echo „Huhu“.
Um zu schauen ob da überhaupt was geschieht. Echo %%1 geht auch.

Gruß
Reinhard

Danke es Funktioniert 8.3 daran Lags, :stuck_out_tongue: hät ich auch dran denken können.
Keine Leerzeichen und Es Funktioniert. aber mein Installationspfad hat leerzeichen kann man da irgendetwas machen?

Hallo LRK,

Danke es Funktioniert 8.3 daran Lags, :stuck_out_tongue: hät ich auch dran
denken können.

Ups, freut mich daß ich richtig lag :smile:

Keine Leerzeichen und Es Funktioniert. aber mein
Installationspfad hat leerzeichen kann man da irgendetwas
machen?

In einer Batch, naja doppelte Anführungszeichen drumrum könntest
du probieren. Ich sah aber auch schon Konstruktionen da waren da
nochmal normale Hochkommas zusätzlich drumrum, probiers aus.

Prinipiell läuft das in einer batch so ab.
Mit %%0 kannste auf den namen der batch zugreifen, ob da der Ordner
dabei steht hab ich vergessen.
%%1 ist der erste Parameter der der batch mitgegeben wurde, %%2
der zweite, usw. Geht bis %%9.

Trennungszeichen dazwischen ist das Leerzeichen, deshalb ging das bei
dir schief.
Abhilfe wie gesagt oder wenn du immer genauso mit Leerzeichen
getrennte Daten hast, so setze sie in der Batch mit
%%1%%2%%3 oder ähnlich wieder zusammen.

Gruß
Reinhard