将值从vbscript传递到批处理文件无法正常工作

时间:2015-04-24 12:26:59

标签: batch-file vbscript

我编写了一个运行vbscript的批处理文件,然后从vbscrit中收集值以进行进一步处理。

这是我的代码:

myBatch.bat

@ECHO OFF
setlocal EnableDelayedExpansion

REM ECHO ============= RUNNING BATCH =============
ECHO. 

for /F "delims=" %%a in ('CSCRIPT C:\myVBScript.vbs') do (
    ECHO RESULT: %%a
   )


REM ECHO ============= FINNISHED BATCH =============
ECHO. 

myVBScript.vbs

    Option Explicit
Dim values, splitStr


    'ask for value
    values=InputBox("Please provide a list separated by semicolon","Do stuff","item1;item2") 
    splitStr=Split(values,";")

    If UBound(splitStr) >= 1 Then
        WScript.Echo splitStr(0)
        WScript.Echo splitStr(1)
    End If

这是输出:

结果:Microsoft(R)Windows Script Host Version 5.8

结果:版权所有(C)Microsoft Corporation。保留所有权利。

结果:item1

结果:item2

两条第一条线来自哪里,我该如何避免它们?这非常令人讨厌,我无法弄清楚如何获得实际值(item1和item2)。

1 个答案:

答案 0 :(得分:2)

两行

  

Microsoft(R)Windows Script Host Version 5.8
  版权所有(C)Microsoft Corporation。版权所有。

是由翻译cscript.exe自动打印的横幅。

使用nologo参数

cscript //nologo C:\myVBScript.vbs

避免脚本输出中的横幅。

您还可以通过运行以下命令为您的用户设置nologo默认值:

cscript //nologo //s