如何将值从vb脚本返回到命令变量?

时间:2014-06-11 18:27:21

标签: batch-file vbscript cmd

我有一个简单的vb脚本(文件名:wiguid.vbs),它会生成一个新的Guid。

set obj = CreateObject("Scriptlet.TypeLib")  
WScript.Echo obj.GUID

我需要从cmd批处理文件中调用此脚本,将新guid存储在命令参数中,并将该变量传递给其他vb脚本。 但是我无法将vbscript中生成的值存储到命令参数中。

类似的东西:

cscript wiguid.vbs 
set NewGuid = '??Should get value from above script call'
cscript OtherVbScript.vbs "SET Value='%NewGuid%'"

我尝试了不同的搜索组合,却无法实现这一目标。

任何指针/建议都会有所帮助! 感谢。

1 个答案:

答案 0 :(得分:3)

@echo off
    setlocal enableextensions

    for /f %%a in ('cscript //nologo wiguid.vbs') do set "newGUID=%%a"
    echo new guid = %newGUID%

    endlocal

不使用临时文件,for /f是从命令执行输出中为变量赋值的常用方法。

它只运行指示的命令,对于输出中的每一行,执行do子句中的代码。 %%a命令的可替换参数(for)将保留全部或部分行。有关完整参考,请参阅for /?