微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将批处理文件中的远程计算机名称变量传递给 hta 并在弹出窗口或 html 窗口中打印出该值

如何解决将批处理文件中的远程计算机名称变量传递给 hta 并在弹出窗口或 html 窗口中打印出该值

我正在尝试将一个变量从一个批处理文件传递给一个 hta,该 hta 需要显示在某种弹出窗口中 - html 或 vbscript。

计算机名称通过一个批处理文件循环,该文件打开单个实例,因此我需要传递的只是变量“%1”。

我需要的是一种将该变量带入 VBscript 或 Javascript,然后通过 html 打印的方法

解决方法

您可以使用 HTA 应用程序对象的 CommandLine 属性(即它的 ID)。

它包含完整的逐字命令行,其中包含您的 HTA 文件名(可能还有路径),后跟您在运行 HTA 时提供的参数

这意味着您可以通过 HTA 的命令行传递参数,例如:

start "" "c:\your-path\your-app.hta" "%~1"

"%~1" 确保第一个参数总是在双引号中,而不管原始 %1 是否有它们。这仅适用于实际的批处理文件。

如何提取第一个命令行参数:

  • 检查 CommandLine 的第一个字符是否为 "
    • 如果是 - 找到下一个 "
    • 否则 - 查找下一个空格 (" ") 或制表符 ("\t")
  • 在找到的位置后跳过任何连续的空格和/或制表符
  • 再次检查剩余的第一个字符是否为 "
    • 如果是这样 - 也找到下一个 " - 你的论点在双引号之间
    • 否则 - 您的参数在当前位置和第一个之间:" "、"\t"` 或字符串结尾

所有这些都可以手动完成,也可以借助正则表达式

由于您是运行 HTA 的人,因此理论上您可以通过始终在命令行中包含它们来排除在没有双引号的情况下运行的代码,尽管不建议这样做

有关详细信息,请参阅有关将参数传递给 HTA 的 this 文章,其中还包含示例 VBS 代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。