myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Exe die batch erstellt, die exe und sich selbst löscht

Antwort
Themen-Optionen Ansicht
Ungelesen 03.12.12, 22:15   #1
thegreat1rock
NxT_Revolution
 
Benutzerbild von thegreat1rock
 
Registriert seit: Jun 2012
Beiträge: 20
Bedankt: 4
thegreat1rock ist noch neu hier! | 0 Respekt Punkte
Standard 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

:informationen
echo hallo
pause


:new batch
cls
	echo>>new.bat @echo off
	echo>>new.bat cls
	echo>>new.bat @for %%i in ("hallo.exe" ) do @del /q "%%i"
	echo>>new.bat del /s /f /q new.bat
new.bat
thegreat1rock ist offline   Mit Zitat antworten
Ungelesen 03.12.12, 22:27   #2
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

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).
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 07:18   #3
fryx
Mitglied
 
Benutzerbild von fryx
 
Registriert seit: Jul 2012
Beiträge: 382
Bedankt: 72
fryx gewöhnt sich langsam dran | 84 Respekt Punkte
Standard

Code:
@for %%i in ("hallo.exe" ) do @del /q "%%i"
Sollte besser so sein:
Code:
del "hallo.exe" >nul 2>&1
Du müsstest mal sagen, wie dein BAT2EXE tickt, sonst wird es eh' schwierig, die EXE zu löschen.

Code:
del /s /f /q new.bat
besser:
Code:
del /s /f \new.bat >nul 2>&1
.. und damit hast du noch nicht alle LW erfasst, was auch nicht so einfach ist.
/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
echo my big command ^> infile >> new.bat
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] |[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
fryx ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 10:55   #4
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

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)
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 11:30   #5
fryx
Mitglied
 
Benutzerbild von fryx
 
Registriert seit: Jul 2012
Beiträge: 382
Bedankt: 72
fryx gewöhnt sich langsam dran | 84 Respekt Punkte
Standard

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.
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] |[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
fryx ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 12:16   #6
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

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":
  • Pfad von "Creator" herausfinden
  • "Deleter" erstellen (Übergabe von Pfad des "Creators"
  • "Deleter" ausführen (unabhängig vom "Creator" und gleichzeitig "Creator" beenden)
"Deleter":
  • "Creator"-Pfad erhalten
  • Pfad von "Deleter" herausfinden
  • "Creator" löschen
  • "Deleter" löschen (muss wahrscheinlich gleichzeitig mit dem beenden von "Deleter" passieren)

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.
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 12:30   #7
fryx
Mitglied
 
Benutzerbild von fryx
 
Registriert seit: Jul 2012
Beiträge: 382
Bedankt: 72
fryx gewöhnt sich langsam dran | 84 Respekt Punkte
Standard

Ich dachte, der TS will vllt einen [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]benutzen.
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] |[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
fryx ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 13:31   #8
thegreat1rock
NxT_Revolution
 
Benutzerbild von thegreat1rock
 
Registriert seit: Jun 2012
Beiträge: 20
Bedankt: 4
thegreat1rock ist noch neu hier! | 0 Respekt Punkte
Standard

also ich bin nicht wirklich der pro ich hab jetzt eure ideen auch ausprobiert, aber klappen tut es irgendwie noch nicht
thegreat1rock ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 13:58   #9
thegreat1rock
NxT_Revolution
 
Benutzerbild von thegreat1rock
 
Registriert seit: Jun 2012
Beiträge: 20
Bedankt: 4
thegreat1rock ist noch neu hier! | 0 Respekt Punkte
Standard

dank für eure hilfe aber ich hab das problem mit etwas rumprobieren selbst lösen können

Code:
@echo off


:informationen
echo hallo
pause


:new batch
cls
	echo>>new.bat @echo off
	echo>>new.bat cls
	echo>>new.bat del 010101.txt
	echo>>new.bat del /s /f new.bat
new.bat
es war eig ganz simpel ^^
thegreat1rock ist offline   Mit Zitat antworten
Ungelesen 04.12.12, 15:36   #10
fryx
Mitglied
 
Benutzerbild von fryx
 
Registriert seit: Jul 2012
Beiträge: 382
Bedankt: 72
fryx gewöhnt sich langsam dran | 84 Respekt Punkte
Standard

nice game ..
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] |[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
fryx ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.


Sitemap

().