Batch Code mit curl empfangen und ausführen?
Hallo!
Ich möchte gerne einen Batch Code mit curl von einer Website empfangen und ihn ausführen.
ZB: Ich öffne cmd auf meinem Computer und gebe ein:
curl beispiel.at/show
und dann wird eine batch Code (z.B: echo Hallo) emfangen und ausgeführt. Wie kann ich das auf meiner Website programmieren?
PS: Ich möchte nicht die Datei zuerst herunterladen und dann ausführen:
curl beispiel.at/show --output show.bat | start show.bat
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!