脚本无法正确接收 url

2023-12-08

我正在使用组合的批处理和java脚本,我发现使用批处理文件从网站检索html,而我们解决的一个问题是没有返回所需的输出,就像我在firefox中使用url时出现的那样。

我用来拉取 html 的脚本是:

@if (@This==@IsBatch) @then
@echo off
rem **** batch zone     *********************************************************

setlocal enableextensions disabledelayedexpansion

rem Batch file will delegate all the work to the script engine 
if not "%~1"=="" (
    cscript //E:JScript "%~dpnx0" %1
)

rem End of batch area. Ensure batch ends execution before reaching
rem javascript zone
exit /b

@end
// **** Javascript zone     *****************************************************

// Instantiate the needed component to make url queries
var http = WScript.CreateObject('MSXML2.ServerXMLHTTP.6.0');

// Retrieve the url parameter
var url = WScript.Arguments.Item(0)

// Make the request

http.open("GET", url, false);
http.send();

// If we get a OK from server (status 200), echo data to console

if (http.status === 200) WScript.StdOut.Write(http.responseText);

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

我试图提供脚本的网址是《天方夜谭》]

或者替代地《天方夜谭》]

问题似乎是空格/+,因为我提供的其他网址都没有使用空格或+

我调用脚本来拉取 html 的方式是:

call callurl.cmd "http://gatherer.wizards.com/Pages/Search/Default.aspx?output=spoiler&method=visual&action=advanced&set=["Arabian+Nights"]"

编辑:找到脚本来自的原始线程不使用浏览器从批处理文件中打开 URL

我所做的唯一更改是 Msxml2.XMLHTTP.6.0 更改为 MSXML2.ServerXMLHTTP.6.0,因为原始脚本由于我发现的安全性而无法加载网站。


在这种情况下,问题在于 Windows 脚本主机消耗了参数中包含的双引号。

npocmaka 已表明解决方案之一:对 url 中的引号进行编码。从我的角度来看,这是正确的(双引号是不安全的字符,应该进行编码)。

另一个解决方案是不将 URL 作为参数传递给脚本,而是将其存储在环境变量中,然后在 javascript 部分中从变量中检索值

@if (@This==@IsBatch) @then
@echo off
rem **** batch zone *********************************************************

    setlocal enableextensions disabledelayedexpansion

    rem Ensure we get a correct reference to current batch file
    call :getFullBatchReference _f0

    rem Batch file will delegate all the work to the script engine 
    if not "%~1"=="" (
        set "URL=%~1"
        cscript //nologo //E:JScript "%_f0%"
    )

    rem Ensure batch ends execution before reaching javascript zone
    exit /b %errorlevel%

:getFullBatchReference returnVar
    set "%~1=%~f0"
    goto :eof

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

// Retrieve the url parameter from environment variable
var url = WScript.CreateObject('WScript.Shell')
            .Environment('Process')
            .Item('URL');

var exitCode = 0;

    try {
        // Make the request
        http.open("GET", url, false);
        http.send();

        // If we get a OK from server (status 200), echo data to console
        if (http.status === 200) {
            WScript.StdOut.Write(http.responseText);
        } else {
            exitCode = http.status;
        };

    } catch (e) {
        // Something failed
        WScript.StdOut.Write('ERROR: ' + e.description );
        exitCode = 1;
    };

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

现在,它可以被称为

geturl.cmd "http://gatherer.wizards.com/Pages/Search/Default.aspx?output=spoiler&method=visual&action=advanced&set=["Arabian+Nights"]"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

脚本无法正确接收 url 的相关文章

  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 已达到网络 BIOS 命令限制

    我的 ASP Net 应用程序从另一台 Windows 服务器上的共享文件夹获取文件 当请求增加时 我收到以下错误 The network BIOS command limit has been reached 我已按照以下步骤操作微软 K
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 使用正则表达式查找并替换(批处理.BAT)

    我想在多个文本文件中进行查找 替换 如何使用 BAT 实现自动化 我还需要正则表达式 示例 查找
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse
  • 如何为 Windows toast 注册协议?

    如何注册 Windows toast 协议 样本中来自https blogs msdn microsoft com tiles and toasts 2015 07 02 adaptive and interactive toast not

随机推荐

  • 自定义控件数据绑定 wpf

    目前正在实现一个自定义控件 我想直接从我的 viewModel 绑定一些值 而不使用 xaml 我可以做这个
  • Latex中@符号是什么意思

    例如 def if nch mpty 1 def temp a 1 ifx temp a empty def f nch def 1 2 if nch mpty 2 f nch gbl def 1 leavevmode else f nch
  • 将寄存器值读入 C 变量 [重复]

    这个问题在这里已经有答案了 我记得看到过一种使用扩展 gcc 内联汇编来读取寄存器值并将其存储到 C 变量中的方法 但我一辈子都不记得如何形成 asm 语句 编者注 这种使用本地寄存器asm变量的方法是现在被 GCC 记录为 不支持 它通常
  • Microsoft Graph API:尝试检索租户策略时出现 403 Forbidden 错误

    我正在尝试使用 Microsoft Graph API 检索在 Azure AD 门户上为我的租户创建的策略 据我从图形 API 文档中了解到 所有策略 CRUD 操作都需要一个范围目录 AccessAsUser All 此范围转换为权限以
  • log4j 选择错误的属性文件

    我的类路径中有 2 个 log4j properties 文件 我需要它们 其中一个是我正在使用的库所必需的 另一个是我的代码使用的库 当我运行我的 jar 文件时 它能够读取库使用的属性 但它不会读取我自己的属性文件 如何让它读取我的 l
  • 找不到与给定名称匹配的资源(在“paddingBottom”处,值为“@dimen/activity_vertical_margin”)

    我试图构建一个导航抽屉 我从某个网站复制了代码 但在其中一个 XML 中收到此错误 找不到与给定名称匹配的资源 在 paddingBottom 处 值为 dimen 活动垂直边距 如何摆脱这个错误
  • 带有 .js 扩展名的 Webpack/ts-loader 导入无法解析

    我的目录结构如下 projectRoot project server src pom xml project ui tsconfig json src file ts imports file js 我的问题是project server
  • 错误:ORA-00907:缺少右括号 - 您能帮助解决问题吗

    select regexp substr replace replace replace CA CO IL KS chr 40 chr 41 chr 39 1 level as division from dual connect by l
  • 使用 Node.js 自动将文本写入控制台

    我需要使用 SSH 和 Node js 脚本克隆 GitHub 存储库 var exec require child process exec exec git clone email protected jquery jquery git
  • 如何仅对具有特定属性集的元素使用 querySelectorAll?

    我正在尝试使用document querySelectorAll对于所有具有value属性集 页面上还有其他复选框没有value设置 并且每个复选框的值都不同 但 ID 和名称并不唯一 例子
  • HtmlUnit 按钮单击

    我正在尝试在 www meetme com 上发送消息 但不知道该怎么做 我可以在评论区域中输入消息 但单击 发送 按钮不会执行任何操作 我究竟做错了什么 当我登录并按登录按钮时 页面确实发生了变化 一切都很好 有人有任何想法或线索吗 Ht
  • 什么是对象/关系不匹配

    我是java新手 正在阅读有关对象关系映射的内容 我在此链接上发现了术语 对象 关系不匹配 休眠 谁能用 Java 解释一下什么是对象 关系不匹配 我也读到过黑客攻击网站但无法正确获得它 用示例进行解释将是值得赞赏的 Hibernate 是
  • Heroku 应用程序坚持使用 HTTPS - 为什么?

    我有一个有趣的小问题 Heroku 上的一个应用程序被配置为使用Heroku SSL 测试版 但无论我做什么 它似乎都想使用 HTTPS 浏览器错误 I have redirect to protocol gt http status gt
  • 如何使用 oozie 安排 sqoop 操作

    我是 Oozie 的新手 只是想知道 如何使用 Oozie 安排 sqoop 作业 我知道 sqoop 操作可以添加为 Oozie 工作流程的一部分 但是我如何安排 sqoop 操作并让它每隔 2 分钟或每天晚上 8 点自动运行一次 只是一
  • JDBC-JTDS 错误?对于日期和时间 (x) 类型的列

    当我尝试从中获取列类型时ResultSetMetaData用方法getColumnTypeName对于类型date and time x 我越来越nvarchar 对于其他类型似乎效果很好 这是一个错误吗 和ResultSet getStr
  • 为什么Golang创建切片时会有CAPACITY参数

    这是一个非常简单的问题 If the capacityGolang中的一个切片的容量是可以被超出的 为什么首先要有一个容量参数呢 我认为这与内存管理 某种 知道在内存中分配切片的位置 但我不确切知道 If the capacityGolan
  • MSChart 轴线

    如何显示图表中每个条形的轴线 我只有第二个 第四个 替代文本 http img35 imageshack us img35 6106 chartiu png 我找到了答案 chartArea AxisX MajorGrid Interval
  • 控制 ggparcoord 中的颜色(来自 GGally 包)

    我正在尝试对特定 ggparcoord 图硬编码所需的线条颜色 例如 当我创建下面的 ggparcoord 图时 library GGally x data frame a runif 100 0 1 b runif 100 0 1 c r
  • Bash - 查找匹配的文件对[重复]

    这个问题在这里已经有答案了 我的文件夹中有很多文件 Filename1 mp4 Filename2 mp4 Filename3 mp4 Etc 以及许多名称添加后缀的文件 Filename1 x264 mp4 Filename2 x264
  • 脚本无法正确接收 url

    我正在使用组合的批处理和java脚本 我发现使用批处理文件从网站检索html 而我们解决的一个问题是没有返回所需的输出 就像我在firefox中使用url时出现的那样 我用来拉取 html 的脚本是 if This IsBatch then