javascript - 将远程计算机名称变量从批处理文件传递到 hta 并在弹出窗口或 html 窗口中打印出值
问题描述
我正在尝试将批处理文件中的变量传递给需要在某种弹出窗口中显示的 hta - html 或 vbscript。
计算机名称通过打开单个实例的批处理文件循环,因此我需要传递的只是变量“%1”。
我需要的是一种将变量带到 VBscript 或 Javascript,然后通过 html 打印的方法。
解决方案
您可以使用CommandLine
HTA 应用程序对象的属性(即它的ID
)。
它包含完整的逐字命令行,其中包含您的 HTA 文件名(可能还有路径),后跟您在运行 HTA 时提供的参数
这意味着您可以通过 HTA 的命令行传递参数,例如:
start "" "c:\your-path\your-app.hta" "%~1"
"%~1"
确保第一个参数始终在双引号中,无论原始 %1 是否具有它们。这仅适用于实际的批处理文件。
如何提取第一个命令行参数:
- 检查第一个字符是否
CommandLine
为"
- 如果是这样 - 查找下一个
"
- 否则 - 查找下一个空格 (
" "
) 或制表符 ("\t"
)
- 如果是这样 - 查找下一个
- 在您找到的位置之后跳过任何连续的空格和/或制表符
- 再次检查第一个剩余字符是否为
"
- 如果是这样 - 也找到下一个
"
- 你的论点在双引号之间 - 否则 - 你的论点在当前位置和第一个之间:
" "
、 "\t"` 或字符串结尾
- 如果是这样 - 也找到下一个
所有这些都可以手动完成,也可以借助正则表达式完成
由于您是运行 HTA 的人,因此理论上您可以通过始终将它们包含在命令行中来排除在没有双引号的情况下运行的代码,尽管不建议这样做
有关详细信息,请参阅这篇关于将参数传递给 HTA 的文章,它还包括示例 VBS 代码
推荐阅读
- sql-server - 删除重复的 XML 属性 - SQL Server
- javascript - 重新加载 localStorage 项目更改 javascript 上的所有打开选项卡
- kubernetes - 如何修复 Spinnaker 安装错误“无法部署 Spinnaker”。(大三角帆v2模式安装)?
- javascript - 通过在javascript中传递键和值从数组中获取对象
- svg - 带有 Bootstrap 的 SVG 徽标
- excel - 如何读取与在一系列单元格(excel)中输入的文件名匹配的同一文件夹中的每个文件?并对所有文件执行相同的操作?
- git - 如何防止使用 husky 直接提交到 master 分支?
- php - 忽略标点符号并突出显示给定字符串中的模式
- r - SQL 查询无法识别的唯一标识符
- java - Java Mockito - 在 DocumentBuilder.parse 期间无法抛出 IOException