批处理文件 – HTA和Batch Hybrid,从BATCH部分传递变量

编程之家收集整理的这篇文章主要介绍了批处理文件 – HTA和Batch Hybrid,从BATCH部分传递变量编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试编写一个批处理hta混合脚本,它允许我将变量从脚本的批处理部分传递到hta部分,这样我就可以生成像计算机型号等的东西. 这是我到目前为止 – 批次: <!-- :: Batch section @echo off Pushd "%~dp0" setlocal FOR /F "tokens=2 delims='='" %%A in ('wmic Compu
我正在尝试编写一个批处理hta混合脚本,它允许我将变量从脚本的批处理部分传递到hta部分,这样我就可以生成像计算机型号等的东西.

这是我到目前为止 – 批次:

<!-- :: Batch section
    @echo off
    Pushd "%~dp0"
    setlocal

    FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Model /value') do SET model=%%A

    for /F "delims=" %%a in ('mshta.exe "%~F0" "%model%"') do set "HTAreply=%%a"
    echo End of HTA window,reply: "%HTAreply%"
    goto :EOF
    -->

正如您所看到的,我尝试使用%model%作为参数,并且我尝试在我的VBScript部分中使用arg1来尝试使用该变量 – 但它不起作用.

所以在我的hta部分中,这是我的vbscript:

<script language="VBScript">

    MsgBox arg1

</script>

这只是打开一个空盒子.

我一直在寻找一段时间在线试图找到一种方法来做到这一点,我无法弄明白.之前解决这个问题方法基本上是创建一个批处理脚本,创建一个新的文件,即hta& amp;批量混合,但我想避免这样简单.

任何帮助将非常感激

@H_403_30@解决方法
您可以使用Wscript.Shell COM对象的Environment对象访问HTA运行时中的环境变量.您可以使用Scripting.fileSystemObject的GetStandardStream方法将数据从HTA传递回stdout上的Batch线程.以下是两者的演示:

<!-- :: Batch section
@echo off & setlocal
Pushd "%~dp0"

FOR /F "tokens=2 delims==" %%A in ('wmic ComputerSystem Get Model /value') do SET model=%%A

for /F "delims=" %%a in ('mshta.exe "%~f0"') do set "HTAreply=%%a"
echo End of HTA window,reply: "%HTAreply%"
goto :EOF
-->
<script language="VBScript">

    Set Env = CreateObject("Wscript.Shell").Environment("Process")
    Set StdOut = CreateObject("Scripting.fileSystemObject").GetStandardStream(1)

    MsgBox Env("model")
    StdOut.Write("response")

    Set Env = nothing
    Set StdOut = nothing

    close()

</script>

对于它的价值,你也可以通过kludging伪装.wsf文件扩展名使用cscript以混合格式访问VBScript.除了消除出现和消失的HTA窗口的短暂闪烁之外,优点是您可以直接传递脚本参数而无需访问环境(“进程”)范围.

<!-- : batch portion
@echo off & setlocal

FOR /F "tokens=2 delims==" %%A in ('wmic ComputerSystem Get Model /value') do SET model=%%A

for /F "delims=" %%a in ('cscript /nologo "%~f0?.wsf" "%model%"') do set "VBreply=%%a"
echo End of VB script,reply: "%VBreply%"

goto :EOF

: VBScript -->
<job>
    <script language="VBScript">
        model = WScript.Arguments(0)

        MsgBox model
        Wscript.Echo "response"
    </script>
</job>

hybrid Batch + JScript则更容易.使用.wsf方法也可以将both VBScript and JScript code作为多个作业.

总结

以上是编程之家为你收集整理的批处理文件 – HTA和Batch Hybrid,从BATCH部分传递变量全部内容,希望文章能够帮你解决批处理文件 – HTA和Batch Hybrid,从BATCH部分传递变量所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Hybrid文章

tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了,然而笔者发现在实际工作中技术人员往往对这些概念似懂非懂,笔者根据自己的理解再结合一个案例,试图向大家阐明这些概念 untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯; tag报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan
预备知识:Tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了,然而笔者发现在实际工作中技术人员往往对这些概念似懂非懂,笔者根据自己的理解再结合一个案例,试图向大家阐明这些概念untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯;tag报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是v
华为:Access、Hybrid和Trunk三种模式的理解预备知识: Tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了,然而笔者发现在实际工作中技术人员往往对这些概念似懂非懂,笔者根据自己的理解再结合一个案例,试图向大家阐明这些概念 untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯; tag报文结构的变化是在源mac地址
转自 http://blog.sina.com.cn/s/blog_3fcc38fc010007w4.html 1. Access端口 (1)收到一个二层帧 (2)判断是否有VLAN标签:没有则转到第3步,有则转到第4步 (3)打上端口的PVID,并进行交换转发 (4)若VLAN标签和PVID一致,转发VLAN帧;否则直接丢弃 2. trunk端口 (1)收到一个二层帧 (2)判断是否有VLAN标
以下是我对vlan的一点理解。   大家知道,交换机会把广播报文(目的mac地址全1的报文)和未知单播报文从所有端口转发出去(除了报文的接收端口),这就是广播。(对未知多播报文如何处理呢,我不知道,应该也会广播出去,这是一个遗留问题,哪位同学知道的请教教我哈)。一般交换机会发送很多广播报文,如果按照上面的处理方法,势必会影响整个网络的通信。vlan就是为了划分广播域而产生的。划分vlan之后,广播
关于Trunk、Hybrid、Access、Tag、Untag、Pvid的关系与区别 1、Trunk口,Trunk口上可以同时传送多个VLAN的包,一般用于交换机之间的链接。     2、Hybrid口,Hybrid口上可以同时传送多个VLAN的包,一般用于交换机之间的链接或交换机于服务器的链 接。     3、Access口,Access口只能属于1个VLAN,一般用于连接计算机的端口。    
以下是我对vlan的一点理解。 大家知道,交换机会把广播报文(目的mac地址全1的报文)和未知单播报文从所有端口转发出去(除了报文的接收端口),这就是广播。(对未知多播报文如何处理呢,我不知道,应该也会广播出去,这是一个遗留问题,哪位同学知道的请教教我哈)。一般交换机会发送很多广播报文,如果按照上面的处理方法,势必会影响整个网络的通信。vlan就是为了划分广播域而产生的。划分vlan之后,广播只在
  预备知识: Tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了,然而笔者发现在实际工作中技术人员往往对这些概念似懂非懂,笔者根据自己的理解再结合一个案例,试图向大家阐明这些概念。 untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯; tag报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注