mit Batch-Datei Dartei in derselben .exe in den autostart kopieren?
Ich versuche mit einer Batch die in einer .exe ist eine andere Datei in der selben .exe in den autostart zu kopieren(NICHT die ganze .exe).
Wie geht das?
2 Antworten
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
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.
- Befindet sie sich nicht im Zielverzeichnis, kopiert sie sich dorthin.
- 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.
ich habe 2 .bat zusammen mit bat2exe in eine .exe konvertiert.
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
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.
Jaa, aber ich will ja eine andere Datei kopieren und nicht sich selbst.