mit Batch-Datei Dartei in derselben .exe in den autostart kopieren?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

eine Batchdatei weiß immer wer sie ist.

echo ich  bin  "%~f0"

entsprechend kann sie mit sich selbst anstellen was sie möchte:

demo.cmd

@echo off
chcp 65001 >nul

echo ich bin die Datei: "%~f0"
echo und werde in "%cd%"  ausgeführt

set "Destination=%appdata%\Microsoft\Windows\Start Menu\Programs\Startup"
 rem nur mit aktivem Code fortfahren  wenn die Batch im Ziel (Destination) ausgeführt wird
if "%~dp0"=="%Destination%\"  goto :Main
echo Hallo ich  bin im Kopiermodus
echo In Meinem Ordner  sind folgend Dateien:
dir /b /s /a-d
echo:
 rem sich  selbst  kopieren...
copy "%~f0" "%Destination%\"
pause
exit /b

:Main
  rem Hier  kommt alles rein was sonst  noch getan werden soll
echo Hallo ich werde  Automatisch ausgeführt
pause
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

gregbomb 
Beitragsersteller
 17.10.2022, 14:52

Jaa, aber ich will ja eine andere Datei kopieren und nicht sich selbst.

Erzesel  18.10.2022, 19:35
@gregbomb

ich habe nicht umsonst den dir-Befehl in den Kopierteil der Batch eingebaut... (damit Du siehst was sich sonst noch im von der .exe erzeugten temporären Ordner befindet)

Ich weiß nicht was sich alles in Deinem 7zSFX befindet. Hch hatte eigentlich erwarte, das Du selbst die funktionsweiße der Parameter %~0 -Variblen erkennst und einfach im copy-Befeh "%~f0" durch ""%~dp0\andererDateiname" ersetzt.

Im übrigen wäre garkeine 2.Batch nötig da obige Batch bereits die funktionalität von zwei Batchdateien inne hat.

  1. Befindet sie sich nicht im Zielverzeichnis, kopiert sie sich dorthin.
  2. Im Zielverzeichnis wird alles nach dem Label :Main ausgeführt. Defakto die Funktionalität zweier Batchdateien in einer.

Diese Lösung habe ich erwogen, da Bat2exe bei mehreren Batchdateien im Kompressionsordner recht willkürlich diejenige zum Ausführen vorsieht in welche zuletzt geschrieben wurde, was problematisch werden kann.

Mit obiger 2in1-Batch lege ich selbst fest was in welcher Situation ausgeführt wird.

Wieso Batch in einer Exe

Eine Batch date ist doch eine *.bat Datei

Und was meinst du mit Dateien in einer Exe

Exe ist eine Datei, sie enthält keine Dateien.


gregbomb 
Beitragsersteller
 15.10.2022, 07:58

ich habe 2 .bat zusammen mit bat2exe in eine .exe konvertiert.

NackterGerd  15.10.2022, 17:27
@gregbomb

Ok kenne ich nicht aber um die Bat auszuführen wirst du dann ähnlich wie beim Zip die Dateien erst wieder extrahieren müssen und dann ausführen bzw verschieben

Erzesel  16.10.2022, 00:41
@NackterGerd

Bat2exe erzeugt mit 7zip ein sfx, welches seinen Inhalt in einen Tempordner "auspuckt" und ausführt.

Damit ist die Batch und der gesamte Klatteratsch der dazu gehört bereits entpackt und der interne Parameter %~f0 sagt ihr wer sie ist.