Batch Code mit curl empfangen und ausführen?

1 Antwort

Im einfachsten fall legst Du einfach auf Deinem Webserver eine beliebige Textdatei mit dem Inhalt der Batch an . Wenn die Batch nur eine Zeile hat, kannst du per for/f-CommandLoop den Inhalt direkt in die Laufvariable des Loops einlesen und ausführen.

simplebatch.txt

echo Hallo ich bins

Demo.cmd

for /f "tokens=*" %%a in ('curl "https://beispiel.at/simplebatch.txt"') do (
   %%a
)
pause

beim Nachladen einer mehrzeiligen Batch besteht die Problematik, das eventuelle Variablensettings oder Loops innerhalb des For/f-loops "zerrissen" würden. (ich verkneife mir tiefergehende Erklärungen hierzu ---https://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/4095133#4095133 )

für einen mehrzeilige BatchText würde sich der das Speichern als Batch in den Temp-ordner und der Aufruf per call anbieten

complexbatch.txt

set "myVar=Blah und Blubb"
for /l %%i in (1,1,10) do (
    echo %myvar% %%i
    timeout 1 >nul
)

demo.cmd

@echo off
curl "curl "https://beispiel.at/complexbatch.txt" -o "%temp%\mytempbatch.cmd" 2>nul
call "%temp%\mytempbatch.cmd"
echo  back in Mainbatch
pause

Was Du da vorhast ist kommt einem Trojaner gleich. Möglicherweise wird der Download oder die Ausführung von der AV-Software blockiert!

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren