首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用JavaScript在.hta中调用curl

无法使用JavaScript在.hta中调用curl
EN

Stack Overflow用户
提问于 2018-10-09 06:32:10
回答 1查看 187关注 0票数 2

由于某些原因,我无法使用JavaScript在.hta中调用curl.exe。以.hta身份运行以下代码(只是一个示例)

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            w=new ActiveXObject("WScript.Shell")
            w.run('"C:\\Windows\\System32\\curl.exe" "https://www.google.com" -o t.txt')
        </script>
    </body>
</html>

尽管System32目录中确实存在curl.exe,但仍会导致找不到文件错误。但是,如果我调用位于不同目录中的curl.exe,就可以很好地工作,如果我将该目录添加到PATH中,则只需'curl‘即可。也可以在System32目录中运行notepad.exe或fc.exe。

我还尝试在.hta中使用VBScript启动curl,但也不起作用。但是,如果我使用以下命令创建.js

代码语言:javascript
复制
w=new ActiveXObject("WScript.Shell")
w.run('"C:\\Windows\\System32\\curl.exe" "https://www.google.com" -o t.txt')

或.vbs with

代码语言:javascript
复制
Set w = CreateObject("Wscript.Shell")
w.Run("""C:\\Windows\\System32\\curl.exe"" ""https://www.google.com"" -o t.txt""")

两者都工作得很好。

那么,在.hta中调用curl时,curl不工作的原因是什么?它被列入黑名单了吗(安全?)原因,是某个地方有bug,还是我做错了什么?

编辑:已尝试调用调用curl的.bat。同样的情况:如果.bat调用C:\Windows\System32\curl,则在.hta中调用时不会工作,但在.js或.vbs中调用时可以工作。调用SomeOtherDirectory\curl.exe是可行的。

EN

回答 1

Stack Overflow用户

发布于 2018-10-09 08:22:38

我终于设法在谷歌和found what was wrong上输入了写下的单词。curl.exe文件由32位mshta.exe运行,这导致C:\Windows\System32重定向到不存在HTA的C:\Windows\SysWOW64。用Sysnative替换System32使.hta正常工作。

代码语言:javascript
复制
w.run('"C:\\Windows\\Sysnative\\curl.exe" "https://www.google.com" -o t.txt')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52710921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档