gpt4 book ai didi

javascript - 未终止的字符串常量-mshta :javascript

转载 作者:行者123 更新时间:2023-11-29 19:03:19 26 4
gpt4 key购买 nike

最近我试图使用 mshta 从 javascript 获取一个快速警告框,但我注意到一些奇怪的事情,我不知道问题是什么。在某种程度上,这就是我试图实现的目标:

mshta javascript:alert("The file was stored here:\"C:\\folder_with_space_ _.txt");

它给出的错误是这篇文章标题中的错误(字符 57)。我尝试了多种方法的组合:

//code that works:
mshta javascript:alert("The file was stored here:\"sdadasd");
mshta javascript:alert("The file was stored here:\"\" sdadasd");

//error-notice the space;error on char 35
mshta javascript:alert("The file was stored here:\" sdasds");

当双引号的数量为奇数时,它看起来会出错,但是:

//error
mshta javascript:alert("The file was stored here:\" \"sdadasd");

我尝试在浏览器控制台中执行相同的操作并且成功了。我相信是某种解析器错误。我该如何解决?(我正在考虑使用 fromCharCode 直接插入双引号)。

注意:命令是从 cmd 运行的。

最佳答案

我将从我开始工作的命令版本开始,然后我将解释它为什么工作:

mshta "javascript:alert('The file was stored here:\x22C:\\folder_with_space_ _.txt');"

第一点,也许是最重要的一点是,我们将单个参数传递给 mshta.exe(要执行的 JavaScript 命令),因此我们应该用双引号将整个参数括起来。这可以防止空格被视为参数定界符。

第二点是似乎没有办法在实际的 JavaScript 命令中使用双引号。根据问题Escaping Double Quotes in Batch Script ,没有标准可以在 cmd 的双引号内转义双引号。显然,mshta.exe 不支持 ""\"(或者至少,我无法让它们工作)。我建议按照 Teemu 在JavaScript 代码中的注释和字符串分隔符仅使用单引号。如果在字符串中,您想要包含双引号字符,请使用十六进制文字 \x22

关于javascript - 未终止的字符串常量-mshta :javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com