2017-04-26 152 views
0

我的批處理腳本通過使用JavaScript語法的CScript來執行HTTP請求,就像我的示例中那樣。將cscript輸出返回到批處理

使用this approach(也seen here)和一些help on escaping我嘗試了以下內容: 「ECHO處於關閉狀態」

@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); 

不幸的是,我得到一個消息,而不是%RESULT%中的字符串。

該腳本在Windows 2008 R2服務器上運行。

+4

你需要[延遲擴展(http://stackoverflow.com/a/30284028/2152082) – Stephan

+0

謝謝,得到它了! '回聲!結果!'起作用! – BNT

+0

[批處理中變量的行爲與預期不符]的可能重複(http://stackoverflow.com/q/30282784/692942) – Lankymart

回答