我编写了一个运行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)。
答案 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