我有一个包含一些名字的txt文件。我需要那些名字 通过VBscript读取,将它们存储在数组列表中并将其传递给BAT文件。 如何将数组列表传递给BAT文件?
这是vbscript:
Dim objFile, strLine(), WshShell, intsize
intSize = 0
Redim Preserve strLine(intsize)
Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile= objFSO.OpenTextFile("read.txt", 1)
Do While Not objFile.AtEndOfStream
strLine(intsize) = objFile.readline
ReDim Preserve strLine(intSize + 1)
Loop
set WshShell=Wscript.Createobject("Wscript.shell")
Wshshell.run "test.bat " & strLine(intSize)
objFile.Close
bat文件
@echo off
echo %1
答案 0 :(得分:0)
Join
函数返回通过连接数组中包含的多个子字符串而创建的字符串。
语法:Join( list[, delimiter])
参数:
list
:必填。包含要连接的子串的一维数组。 delimiter
:可选。用于分隔返回字符串中的子字符串的字符串字符。如果省略,则使用空格字符(" "
)。如果分隔符是零长度字符串,则列表中的所有项目都不连接分隔符。使用"
括号将列表括起来会导致它在被调用的批处理中显示为唯一的参数(%1
)。您的run
方法行可以如下:
Wshshell.run "test.bat """ & Join( strLine, ";") & """"
并注意到:循环中缺少数组索引递增;这是几乎无懈可击的代码段:
intSize = -1
ReDim strLine( 0)
strLine( 0) = ""
Do While Not objFile.AtEndOfStream
intSize = intSize + 1
ReDim Preserve strLine( intSize)
strLine( intsize) = objFile.readline
Loop