【发布时间】:2016-02-26 00:29:18
【问题描述】:
我必须运行一个有 2 个参数的 VB 脚本。所以我在下面运行一个命令。
Delete_Dummy1.vb
s C:\Users\c6342\Desktop\XML_to_CSV\Temp_Files\xml.csv C:\Users\c6342\Deskto
p\XML_to_CSV\Temp_Files\xml1.txt
**VB Script Sample - not working:**
**sourceloc** = WScript.Arguments.Item(0)
**destloc** = WScript.Arguments.Item(1)
Dim objFSO, dataArray, clippedArray()
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oTextStream = objFSO.OpenTextFile("**sourceloc**")
Set newFile = objFSO.CreateTextFile("**destloc**")
它将错误抛出为 file not found. 但如果我对 sourceloc 和 destloc 进行硬编码并删除参数,它就可以正常工作。只有当我使用参数时它才会抛出错误。
**Working VB Script sample:**
Set oTextStream = objFSO.OpenTextFile("C:\Users\c6342\Desktop\XML_to_CSV\Temp_Files\xml.csv")
Set newFile = objFSO.CreateTextFile("C:\Users\c6342\Desktop\XML_to_CSV\Temp_Files\xml1.txt")
这很好用。但根据我的项目要求,我无法对这些文件位置进行硬编码。我可以从命令中作为参数传递。
【问题讨论】:
-
对不起请忽略代码sn-ps中的**。我刚刚用 ** 强调了重要的事情。
-
您需要将带有空格的参数用双引号括起来(
")。 -
我也试过用双引号。但无论如何,我的源文件和目标文件位置都没有空格。
-
我知道你说用引号括住每个值不起作用?查看my answer below 我更详细地介绍了空间是如何被解释的。
标签: command-line vbscript command-line-arguments