2017-04-26 2 views
0

Mein Batch-Skript führt eine HTTP-Anfrage durch, indem es CScript mit Javascript-Syntax wie in meinem Beispiel verwendet.Cscript-Ausgabe an Stapel zurückgeben

Mit this approach (auch seen here) und einige help on escaping Ich habe versucht, die folgenden: "ECHO ausgeschaltet ist"

@if (@[email protected]) @then 
@echo off 
rem **** batch zone ********************************************************* 
    setlocal enableextensions EnableDelayedExpansion 

    set OWNPATH="%~dpnx0" 

    if not "%~11"=="" (
     FOR /F "usebackq tokens=*" %%r in (`cscript //E:JScript %OWNPATH%`) DO SET RESULT=%%r 
     ECHO %RESULT% 
    ) 

    exit /b 

@end 
// **** JScript zone ***************************************************** 
// Instantiate the needed component to make url queries 
var http = WScript.CreateObject('Msxml2.XMLHTTP.6.0'); 

// perform request 
var requestURL = "http://myserver/api"; 

// Make the request 
http.open("GET", requestUrl, false); 
http.send(); 

WScript.Echo(http.ResponseText); 

// All done. Exit 
WScript.Quit(0); 

Leider bekomme ich eine Meldung, und nicht die Zeichenfolge in % RESULT%.

Das Skript wird auf einem Windows 2008 R2-Server ausgeführt.

+4

Sie benötigen [verzögerte Expansion] (http://stackoverflow.com/a/30284028/2152082) – Stephan

+0

Dank verwenden, Ich habs! "Echo! ERGEBNIS!" funktioniert! – BNT

+0

Mögliches Duplikat von [Variablen im Stapel verhält sich nicht wie erwartet] (http://stackoverflow.com/q/30282784/692942) – Lankymart

Antwort