![]() |
Exe die batch erstellt, die exe und sich selbst löscht
hallo erstmal
ich versuch jetzt schon stundenlang eine batch datei zu schreiben, welche ich später zu exe umwandel, welche folgenden plan erfüllt 1. die exe datei zeigt einen text an 2. die exe datei erstellt eine batch datei 3. die exe datei öffnet die batch datei und schließt sich 4. die erstellte batch datei löscht die exe datei 5. die batch datei löscht sich selbst die exe heißt hallo.exe un die batch datei heißt new.bat die batch datei sollte die exe finden egal wo sie ist. hier is mein bisheriges ergebnis Code:
@echo off |
Also da die "exe" ja die "bat" erstellt, kann sie dieser ganz leicht sagen wo sie selbst (also die "exe") ist (also ist da nicht wirklich eine Suche notwendig). Um eine Bat sich selbst löschen zu lassen genügt ein "del %0" (%0 -> enthält den Name mit der die Bat aufgerufen wurde).
|
Code:
@for %%i in ("hallo.exe" ) do @del /q "%%i" Code:
del "hallo.exe" >nul 2>&1 Code:
del /s /f /q new.bat Code:
del /s /f \new.bat >nul 2>&1 /f betrifft den Schreibschutz von new.bat, falls du den aktivierst. Zur Ausgabe an eine Datei müssen Sonderzeichen escaped werden: ^> Um was in eine Datei zu schreiben: Code:
echo something and more >> new.bat |
Da aber diese erste "bat" eh zu einer "exe" werden soll ist der obere Code etwas unnötig und man sollte sich auch nicht zu lange damit aufhalten, diesen auszubessern ...
Hier ist eine Referenzimplementierung in C von mir ... die erstellte "bat" heißt bei mir jedoch genau so wie die "exe" nur mit ".bat" angehängt und befindet sich immer im gleichen Ordner wie die "exe" (es ist wichtig dass die "exe" aufgerufen wird und nicht eine Verknüpfung davon, da sonst die Verknüpfung gelöscht wird) |
In einer Hochsprache ist das alles easy, Batch erfordert halt Sportsgeist.
Diese Aufgabe ist mit Batch auch sehr leicht zu lösen. In C#+++ kannst du da gleich noch eine nice GUI bauen, die eine Batch schreibt und sich anschliessend selber löscht. Na ja, der TE kann ja entscheiden, hat nun die (Aus)Wahl. |
Ja, bitte nicht falsch verstehen ... ich wollte die Lösung nicht schlecht machen ... ich weiß halt nur nicht warum man sich mit einem Batch-Programm "quält", wenn es ja am ende doch eine "exe" daraus werden soll und kein Skript.
Das C-Programm soll ja auch nur als ein Beispiel für viele herhalten ... Grundsätzlich funktioniert das gewünschte Programm so: "Creator":
Man könnte/sollte den "Deleter" so erstellen, dass er so lange mit dem löschen von "Creator" wartet, bis sich "Creator" beendet hat (sonnst muss man den "Creator" gleich nach dem Start von "Deleter" beenden), da sonst ein Löschen nicht möglich ist. |
Ich dachte, der TS will vllt einen [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]benutzen.
|
also ich bin nicht wirklich der pro :) ich hab jetzt eure ideen auch ausprobiert, aber klappen tut es irgendwie noch nicht :(
|
dank für eure hilfe aber ich hab das problem mit etwas rumprobieren selbst lösen können :)
Code:
@echo off |
nice game .. :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.