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

Pass remote Computer name variable from batch file to hta and print out the value in a pop up or html window

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

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

我需要的是将该变量带到 VBscript 或 Javascript,然后通过 html.

打印的方法

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

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

时提供的参数

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

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

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

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

  • 检查 CommandLine 的第一个字符是否为 "
    • 如果是 - 查找下一个 "
    • 否则 - 查找下一个 space (" ") 或选项卡 ("\t")
  • 在找到位置后跳过任何连续的 spaces and/or TABs
  • 再次检查第一个剩余字符是否为 "
    • 如果是 - 还要找到下一个 " - 你的论点在双引号之间
    • 否则 - 您的论点介于当前位置和第一个位置之间:" "、"\t"` 或字符串结尾

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

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

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