大佬教程收集整理的这篇文章主要介绍了批处理文件 – HTA和Batch Hybrid,从BATCH部分传递变量,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我到目前为止 – 批次:
<!-- :: 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;批量混合,但我想避免这样简单.
任何帮助将非常感激
<!-- :: 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部分传递变量所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。