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

Posted

技术标签:

【中文标题】将远程计算机名称变量从批处理文件传递到 hta 并在弹出窗口或 html 窗口中打印出值 [关闭]【英文标题】:Pass remote Computer name variable from batch file to hta and print out the value in a pop up or html window [closed] 【发布时间】:2021-06-04 10:54:20 【问题描述】:

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

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

我需要的是一种将变量带到 VBscript 或 javascript,然后通过 html 打印的方法。

【问题讨论】:

您好,为什么关闭了?这可能不是质量最好的问题,但它足够简单并且包含所有必要的信息。 Op 可能不熟悉“命令行”一词,或者没有意识到在这种情况下使用 google 搜索它,或者不明白这是他们需要的。 引用的原因如下:我们不允许提出有关书籍、工具、软件库等建议的问题。编辑问题,以便可以用事实和引用来回答它。是的,我是 HTA 新手,我做过 html 和一些 vbscript 操作,但 javascript 对我来说是新的,我不熟悉最佳实践。最初,我询问了基于 HTA 的倒数计时器,但一个拥有 32k 代表的人问我为什么需要它,我指出为什么与我的问题无关。总的来说,这将是理解和学习的一个跳跃点。 由于人们在这里受到的待遇,我已将问题发布到该网站作为我绝对的最后手段。 好的,我没有看到任何表明您正在寻求软件或书籍推荐的信息。也许关闭这个的版主不熟悉HTA是什么?我看过你关于计时器的问题,它有点模糊 - 你包含了很多似乎让人们失望的不相关信息。您也许可以像这个问题一样将这个问题重组得更直接,并且只包含相关的工作代码。另请阅读并理解以下内容:***.com/help/how-to-ask 因为我想我可能已经回答了你的问题了(你可以用谷歌进一步搜索 - 搜索 hta commandline 或其他东西)我认为试图对它的关闭提出异议可能是浪费时间 - 如果这没有不能帮助您提出其他问题,希望能更好一点。解释你到底想要完成什么,你尝试了什么以及它是如何失败的,提供最少的相关工作示例代码。 【参考方案1】:

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

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

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

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

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

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

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

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

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

更多信息请参阅this关于向 HTA 传递参数的文章,它还包括示例 VBS 代码

【讨论】:

以上是关于将远程计算机名称变量从批处理文件传递到 hta 并在弹出窗口或 html 窗口中打印出值 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

HTA (VBScript) - Shell.Run 使用变量

无法将变量从控制器传递到模型以处理codeigniter中的多个上载字段

如何将多个变量从 VBS 传递到批处理脚本?

如何在powershell的“get-content command”中传递变量

从 hta 批处理文件运行 CMD 命令?

SSH 从本地文件运行命令并传递本地环境变量