.bat datei durch Javascript/Html Button ausführen?

5 Antworten

Ganz einfach:

  1. Weise deinen Browser dazu an, als Protokoll-Handler für shell_execute:// das Programm %WINSYSDIR%\cmd.exe zu verwenden (wie das genau geht, kommt auf den jeweiligen Browser und/oder das Betriebssystem an).
  2. Verwende den folgenden HTML-Code: <a href="shell_execute://C:/foo/bar.bat">Run the Batch</a>

Ansonsten gäbe es noch die Möglichkeit, z.B. für Chrome, Firefox u.ä. ein Addon zu programmieren, das die entsprechenden Aktionen vornimmt.

Programmiere427 
Fragesteller
 01.10.2018, 16:55

Hi, danke für deine antwort aber ich stehe jetzt vor dem rätsel, das man ja eigendlich den ganzen Pfad zur datei eingeben muss oder?

0
Isendrak  01.10.2018, 17:02
@Programmiere427
aber ich stehe jetzt vor dem rätsel, das man ja eigendlich den ganzen Pfad zur datei eingeben muss oder?

Wä?!

Oder etwas deutlicher: Was genau meinst du? Dass man bei dem Verfahren mit dem Protokoll-Handler nach dem URL-Schema noch den absoluten Pfad angeben muss?

Kommt drauf an...

Wenn z.B. die Datei test.bat im Verzeichnis C:\Windows\ liegt, dann sollte auch die URL shell_execute:test.bat reichen. Das gilt für sämtliche Pfade, die in der Umgebungsvariablen PATH aufgelistet sind.

Ansonsten ja, dann muss der komplette Pfad mit rein.

0
Hallo ich habe einen Javescript/Html Button der eine .bat datei ausführen soll

Du kannst weder mit einem HTML-Link noch mit Javascript ein Programm auf dem lokalen Rechner ausführen. Wenn das ginge, wäre das ein sehr hohes Sicherheitsrisiko.

Stell Dir vor, das wäre möglich eine Batch-Datei auszuführen, dann wäre es ja auch möglich z. B. das Kommando

del *.* /F /S /Q

auszuführen. Und das will wohl keiner.

Alex

Im Browser geht das nicht wirklich. Wäre ja auch ein extremes Sicherheitsrisiko wenn eine Website einfach Zugriff auf die Konsole hätte und einfach Sachen ausführt.
Es geht teilweise mit Zustimmung des Nutzers im Internet Explorer über ActiveX.
Aber da muss man halt jedes Mal noch zustimmen.
JavaScript ohne Browser in einem Framework wie NodeJS könnte das.

Programmiere427 
Fragesteller
 28.09.2018, 11:16

es geht nicht um eine website sondern um eine oberfläche für cmd befehle die mit einem button ausgeführt werden soll

0
LisamagPferde04  28.09.2018, 11:20

Ja aber wie es sich anhört willst eine eben eine Website, wenn auch lokal machen.
Oder wo willst du es anzeigen wenn nicht im Browser?

1

Zu Testzwecken?. Dafür muss das .bat File aber auf dem PC liegen, der die Website öffnet:

<a href="#C:\Pfad\Zu\Bat\File\file.bat">Batch File</a>

Wenn du dies aber online stellst, kann es illegal werden!

ZaoDaDong  28.09.2018, 11:16

Ich behaupte mal, dass das gar nicht zur Ausführung kommt, sondern man bekommt die Datei dann zum DL angeboten.

1
Gaterde  28.09.2018, 11:22
@ZaoDaDong

Genau... Falsche Überlegung meinerseits. Sonst könnte man ja recht einfach Viren verteilen :/

0
Gaterde  28.09.2018, 11:22

Habe es noch kurz getestet. Er führt es dann logischerweise nicht aus, sonder zeigt nur den Inhalt des Files an... Ist ja auch besser so.

0
Programmiere427 
Fragesteller
 28.09.2018, 11:34

<!DOCTYPE html>

<html>

<head>

   <title></title>

</head>

<body>

   <button onclick="alert('hallo ich bin ein button')">drueck mich </button>

   <button onclick="<a href="#C:\Users\Fabian\Desktop\befehle\1.bat">Batch File</a>">drueck mich 2</button>

</body>

</html>

Was mache ich falsch?

0
EinAlexander  28.09.2018, 11:40

Das ist weder illegal noch funktionsfähig.

0

Das sollte nicht möglich sein...

Wenn überhaupt nur mit einem Workaround...

Woher ich das weiß:Recherche
Programmiere427 
Fragesteller
 28.09.2018, 11:13

Aber mann muss doch dateien dürch einen button mit javascript öffnen können

0
Destranix  28.09.2018, 11:14
@Programmiere427

Das Ausführen sollte aber eine Security-Fehlermeldung geben...

Am Besten mal googeln, da hab ich was dazu gesehen...

0
ZaoDaDong  28.09.2018, 11:13

korrekt, da viele moderne Browser bereits im Sandboxmodus laufen. Das sollte man auch keinesfalls so umsetzen, selbst, wenn man es könnte. Jedenfalls nicht mit Java-Script, sondern per PHP, Java, CGI etc. Ein Web-Frontend kann man ja gerne dafür bereitstellen.

0