Frage von Sepoo, 61

Gibt es eine Möglichkeit eine Batch Datei eine Kopie erstellen zu lassen die dann auch von der Batch automatisch ausgeführt wird?

Hallo, wie in der Frage oben schon erwähnt möchte ich eine Batch Datei erstellen die eine Kopie von sich selbst erstellt und diese dann automatisch ausführt.

Antwort
von Bitology, 46

Ja das funktioniert, sind nur zwei Zeilen.

Kommentar von Sepoo ,

Und wie lauten die?

Kommentar von Bitology ,

Ist schon zu lange her, aber Du musst einmal die Batch Datei irgendwo hin kopieren und dann einen Registry Eintrag machen. Leider kenne ich die Befehle nicht mehr.

Kommentar von Spirit528 ,

copy datei.bat datei-kopie.bat
call datei-kopie.bat

REM wenn datei.bat beendet werden soll auch wenn datei-kopie.bat
REM noch nicht beendet ist, also datei.bat weiterlaufen soll, dann
REM verwendet man - start - statt - call -
REM 
REM nein, wozu ein registry-eintrag?

Antwort
von Schrotti2002, 27

Ja, gibt es!

Hier einmal ein Beispielscript dazu!

@echo off

copy programmname.cmd programmname2.cmd
programmname2.cmd

Aber wenn du beispielsweise einen CMD-Virus programmieren willst (ich gehe mal davon aus) wäre dieser script ungeeignet, da er den Virus selber immer wieder in der selben CMD-instanz ausführen würde! Ein sinnvoller CMD-Virus würde in diesem Fall so aussehen:

@echo off
:loop
taskmgr.exe
goto loop

Hier musst du nix kopieren, und der Arbeitsspeicher überlädt schneller, als du "Windows" sagen kannst.

MfG Schrotti

Kommentar von Sepoo ,

wie das geht weiß ich ich will aber das er noch dabei sich selbst immer wieder auf dem Laufwerk dupliziert und diese Duplizierungen immer wieder ausgeführt werden und das selbe machen.

Kommentar von PWolff ,
:loop
FOR /L %%A IN (0,1,65535) DO (COPY "%0.bat" "%0,%%A.bat" & START "%0,%%A")
GOTO loop

Aufruf ohne das abschließende .bat. (Das ließe sich auch noch automatisieren.)

Kommentar von PWolff ,

Eine endlose Reihe von Kommandozeilen-Fenstern erhält man z. B. mit

start %0
start %0

(%0 enthält den Namen der gerade ausgeführten Batch-Datei - bis zum ersten SHIFT)

Antwort
von Spirit528, 23

Klar.

copy datei.bat datei-kopie.bat
call datei-kopie.bat

REM wenn datei.bat beendet werden soll auch wenn 
REM datei-kopie.bat noch nicht beendet ist, also 
REM datei.bat weiterlaufen soll, dann verwendet man - start - REM statt - call -

Kommentar von Sepoo ,

gibt es auch einen weg wo der Dateiname zum ausführen egal ist

Kommentar von Bitology ,

Der Dateiname ist egal, sollte bloß zusammenpassen,

Kommentar von Sepoo ,

ich meine jetzt wenn er einfach die Kopie ausführt ohne das ich in die Datei einfüge wie die Kopie heißt

Kommentar von Spirit528 ,

Ah.. ok.. das geht wohl nicht. Du musst einen Dateinamen angeben. Aber Du kannst den Dateinamen auch als Kommandozeilenparamter/Argument angeben

Du rufst es auf mit:

datei.bat datei-kopie

und in datei.bat steht dann

copy datei.bat %1.bat
call %1.bat

Keine passende Antwort gefunden?

Fragen Sie die Community