将Int和List变量传递给VBscript

时间:2014-06-23 07:42:16

标签: c# vbscript

我使用process.StartInfo.Arguments将变量从我的C#代码传递给我的VBscript,但它只传递字符串变量。

这是我的示例代码,它可以用于传递字符串。

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "E:\\Libraries\\Document\\Merge.vbs";
process.StartInfo.WorkingDirectory = "E:\\Libraries\\Document\\";
process.StartInfo.Arguments = FileName;
process.Start();

如何在不使用int的情况下将List<string>startinfo.Arguments传递给我的VBscript?

2 个答案:

答案 0 :(得分:1)

这不起作用。程序的参数总是字符串。这意味着您必须将所有参数转换为字符串并在vbscript中解析它们

答案 1 :(得分:1)

参数总是字符串值,您需要将它们转换为字符串才能传递它们。

例如,可以使用string.Join

翻译列表
int myInt
List<string> myStringList;
List<int> myIntList;

string intAsString = myInt.ToString();
string stringListAsString = string.Join(",",myStringList);
// using System.Linq
string stringListAsString = string.Join(",",myIntList.Select(x => x.ToString());

要解码另一端,您需要使用split函数,假设您已将参数复制到匹配变量中。

myInt = CInt(intAsString)
myStringList = Split(stringListAsString,",")
myIntList = Split(intListAsString,",")

for a = LBound(myIntList) to Ubound(myIntList)
  myIntList(a) = CInt(myIntList(a))
next a

如果参数的剪切量太大,您总是可以将它们写入临时文件并将文件名传递给VB脚本