a href Parameterübergabe

  • Ich habe mir eine kleine Website gebastelt, auf der ich Batch-Files verlinkt habe.
    Diese werden auch auf dem Server ausgeführt. Nun wollte ich einen Parameter an die Batch übergeben, jedoch funktioniert das nicht :(
    So dachte ich mir das eigentlich:

    <a href="../cgi-bin/batch.bat?2" target="_blank">Batch aussführen mit Parameter 2</a>

    Die Batch wird auch ausgeführt, jedoch ohne den Parameter!
    Hab schon stundenlang google bemüht, jedoch brachte mir das auch keine Antwort.

    MfG

  • Ich bin überrascht, dass sowas überhaupt geht :D

    Batch ist meine Wissens nach für sowas nicht gerüstet. /{ P.S: aber ich lass mich gerne korrigieren, nicht wirklich meine Liga :) }/

    Mach dir einen Wrapper für die Batch in einer anderen Sprache, z.B. PHP oder Python. Du willst nicht, dass jemand dir per Parameter auf der Shell ausführt.

    Python:
    http://docs.python.org/library/os.htm…=execl#os.execlhttp://docs.python.org/library/cgi.html


    http://docs.python.org/library/cgi.htmlPHP

    PHP
    <?php 
    if(isset($_GET['2'])) {
      exec('batch.bat 2');
    }
    else {
      exec('batch.bat');
    }
    ?>


    So die Richtung.

  • Grevas

    Danke für deine Antwort, muss ich mal in Ruhe ausprobieren, ob ich das hinbekomme

    @Gast

    Ja genau das versuche ich ja herauszufinden, wie das funktioniert ;)

  • @Gast

    Ja genau das versuche ich ja herauszufinden, wie das funktioniert ;)


    Na dann hast du dir nicht viel Mühe gegeben. Unter DOS einfach hinten ran hängen. Den Rest muss die Batch erledigen.

    Beispiel:
    param.bat mist

    Jetzt muss in der Batch der Parameter %1 abgefragt werden. Der beinhaltet dann "mist". Einfacher gehts nicht.

  • Jetzt weiß ich was du meinst.
    Wenn ich meine batch mit DOS (CMD) mit "batch.bat parameter" aufrufe, dann funktioniert es auch. In %1 ist der Prameter.
    Jedoch funktioniert das ja mit "a href" nicht so einfach. :(

  • Na dann hast du dir nicht viel Mühe gegeben. Unter DOS einfach hinten ran hängen. Den Rest muss die Batch erledigen.

    Beispiel:
    param.bat mist

    Jetzt muss in der Batch der Parameter %1 abgefragt werden. Der beinhaltet dann "mist". Einfacher gehts nicht.


    Es geht um GET und POST Parameter die im Request Header sind :roll:. Ich wüsste jetzt nicht, wie eine batch auf die Apachen-Variablen zugreifen könnte / sollte. Um genauer zu sein, geht es um diesen Part: http://httpd.apache.org/docs/1.3/howto…onmentvariables

    //P.S. so einfach darf es auch nicht funktionieren, stell dir mal vor, jemand dürfte dir per Browser auf der Shell schreiben :)

    Einmal editiert, zuletzt von Grevas (11. November 2011 um 09:12)

  • So, hab es jetzt anders gelöst . Hab einfach einzelne Bat's erstellt, die den jeweiligen Parameter beinhalten und rufe dann halt immer eine ander bat auf.
    Jetzt hab ich aber ein anders Problem.
    Ich lasse die Ausgabe der Bat in ein iframe laufen. Klappt wunderbar.
    Klicke ich jedoch wieder auf den Link, der die Bat ausführen soll, so kommt zwar die Ausgabe im iframe aber die Bat wird nicht ausgeführt. Der Browser holt die Daten aus dem Cache und das ist MIST! Wie kann ich das umgehen?

    MfG

  • Das Problem mit dem Cache habe ich auch lösen können.
    Da ja die META cache-control leider von allen Browsern ignoriert wird, musste ich es auch etwas anders lösen.
    Ich übergebe dem Link einfach einen Parameter. Dies hat zur folge, dass das iframe immer neugeladen wird und nicht aus dem Cache kommt.

    z.B.: <a href="../cgi-bin/batch.bat?1" target="_blank">Batch aussführen mit Parameter 2</a>

    Es wird der Parameter 1 übergeben, der zwar leider nicht bei der Batch ankommt, aber es reicht dafür aus, um das Cachen zu vermeiden.

    MfG und danke nochmal