Martin K.: javascript batch-datei aufrufen

Hallo ich habe eine HTA Anwendung von der ich eine .bat datei aufrufen will und dieser Parameter übergeben will.

Mein Ansatz:

wshShell = new ActiveXObject("WScript.Shell");
 var aufruf = "E:/test.bat" + parameter;

var oExec = wshShell.Exec(aufruf);

Mein Problem ist: Wenn ich den parameter weglasse geht alles wie es soll.
Sobald ich den Parameter mit übergebe, sieht es auch so aus, als wenn du batch datei ausgeführt wird aber ohne Ergebnis.
Woran kann das liegen?
Habe auch schon "wshShell.Run" probiert und versucht den Inhalt der Batch-Datei als aufruf zu übergeben aber mit dem selben ergebnis.

Danke

  1. Hallo Martin,

    Hallo ich habe eine HTA Anwendung von der ich eine .bat datei aufrufen will und dieser Parameter übergeben will.

    wshShell = new ActiveXObject("WScript.Shell");
    var aufruf = "E:/test.bat" + parameter;

    was steht in test.bat?
    Welchen Inhalt hat die Variable parameter, d.h. wie ist der Inhalt von aufruf?

    Mein Problem ist: Wenn ich den parameter weglasse geht alles wie es soll.
    Sobald ich den Parameter mit übergebe, sieht es auch so aus, als wenn du batch datei ausgeführt wird aber ohne Ergebnis.
    Woran kann das liegen?

    An Deinem Code, den Du uns netterweise verschweigst.l

    Habe auch schon "wshShell.Run" probiert und versucht den Inhalt der Batch-Datei als aufruf zu übergeben aber mit dem selben ergebnis.

    Was möchtest Du eigentlich erreichen? Die Batchdatei scheint ja nur ein weiteres Mittel zu sein, das Du ausprobierst um Dein richtiges Ziel zu erreichen?

    Freundliche Grüße

    Vinzenz

    1. hallo,

      also die batch datei ruft den Xalan auf und wandelt dokumente die in einer xml datei sind um und speichert diese auf der festplatte.
      den pfad der xml-datei will ich übergeben.
      Wenn ich die batch-datei so aufrufe klappt auch alles und es wird eine datei angelegt aber ohne den inhalt der xml-datei.
      Wenn ich das in die Kommandozeile eingabe geht es ja komischerweise.

      danke martin

      1. Hallo Martin,

        also die batch datei ruft den Xalan auf und wandelt dokumente die in einer xml datei sind um und speichert diese auf der festplatte.

        möglicherweise fehlt Dir ein Leerzeichen. Deswegen hatte ich ja nach dem Inhalt der Variablen aufruf bzw. vorher der Variablen parameter gefragt.

          
        wshShell = new ActiveXObject("WScript.Shell");  
          
        var parameter = "C:/test.bat";  
        var aufruf = "C:/Programme/Vim/vim70/gvim.exe" + " " + parameter;  
        var oExec = wshShell.Run(aufruf);  
        
        

        startet meinen Editor mit der angegebenen (und vorhandenen) Datei.
        Leerzeichen in Pfadangaben müsstest Du noch gesondert behandeln, zudem empfehle ich Dir eine Fehlerbehandlung beim Erzeugen des ActiveX-Objektes sowie dem Aufruf der Run-Methode.

        Freundliche Grüße

        Vinzenz

        1. Hallo

          var parameter = "C:/test.bat";
          var aufruf = "C:/Programme/Vim/vim70/gvim.exe" + " " + parameter;
          var oExec = wshShell.Run(aufruf);

          das habe ich auch schon probiert, leider ohne erfolg.
          habe das:

          var aufruf = "C:/Programme/Vim/vim70/gvim.exe" + " " + parameter;

          und auch den paramter als festen string also so

          var aufruf = "C:/Programme/Vim/vim70/gvim.exe" + " parameter";

          und so:

          var aufruf = "C:/Programme/Vim/vim70/gvim.exe parameter";

          Bin auch irgendwie verzweifelt!

          danke

          1. Hallo Martin,

            var aufruf = "C:/Programme/Vim/vim70/gvim.exe parameter";

            bitte werde doch endlich konkret.
            Was steht in der Variablen parameter? Exakt, wortwörtlich!
            Welchen exakten Programmaufruf hast Du.
            Ich möchte schlicht und einfach den exakten und kompletten Befehlsaufruf sehen.

            Bin auch irgendwie verzweifelt!

            Ich verzweifle allmählich auch an Deiner mangelnden Kooperationsbereitschaft.

            Freundliche Grüße

            Vinzenz

            1. Hallo,

              bitte werde doch endlich konkret.

              Wäre vielleicht auch interessant ob eine Fehlermeldung in der Javascriptkonsole des Browsers steht.

              mfG,
              steckl

              1. Nee kam keine Fehlermeldung hat es einfach nicht gemacht!

                Martin

            2. Hallo Vinzenz

              danke übringens für deine Kompetente Hilfe.
              Jetzt gehts, ich habe einen anderen Pfad genommen, weiß nur nicht warum es jetzt geht.
              Kannst du mir sagen ob die leerzeichen in den ordner namen im alten pfad schuld sein können und wie kann man das verhindern.
              das ist das einzige was am pfad anders ist!

              danke Martin

              1. Hallo

                danke übringens für deine Kompetente Hilfe.

                bitte, mach' ich doch gern.

                Jetzt gehts, ich habe einen anderen Pfad genommen, weiß nur nicht warum es jetzt geht.
                Kannst du mir sagen ob die leerzeichen in den ordner namen im alten pfad schuld sein können und wie kann man das verhindern.

                Ja, sind sie. Das schrieb ich Dir bereits in meinem zweiten Posting:

                Leerzeichen in Pfadangaben müsstest Du noch gesondert behandeln

                Wenn Du Leerzeichen in der Pfadangabe hast, dann musst Du den kompletten Pfad in Anführungszeichen packen, zum Beispiel:

                  
                    wshShell = new ActiveXObject("WScript.Shell");  
                    var parameter = "\"C:/Mein Verzeichnis mit Leerzeichen/test.txt\"";  
                    var aufruf = "C:/Programme/Vim/vim70/gvim.exe" + " " + parameter;  
                    wshShell.Run(aufruf);  
                
                

                Gleiches gilt für den Programmaufruf, wenn der Pfad zum auszuführende Programm Leerzeichen enthält.

                Freundliche Grüße

                Vinzenz