【发布时间】:2018-11-28 06:40:22
【问题描述】:
所以我试图将一个数组从我的 C# 代码发送到一个批处理文件,我需要在该文件上执行一个 for-each 循环。
我的 C# 代码:
string MyBatchFile = {the batch file path}
int[] x = {1,2,3};
var process = new System.Diagnostics.Process
{
StartInfo =
{
Arguments = String.Format("{0}", x)
}
};
process.StartInfo.FileName = MyBatchFile;
process.Start();
我的批处理文件:
set array=%1
FOR %%x IN %array% DO (
echo %%x
/*Some more lines here*/
)
pause
这似乎不起作用,如果我打印%array%,我会得到"System.Int32[]"。我究竟做错了什么?
注意:主要目标不是打印数组,而是对数组中的每个值执行一些操作。印刷只是一个例子。
编辑:我终于成功了,找到了一些解决方法:) 我不会公布我是如何做到的,因为它是“重复的”,不是吗? 干杯。
【问题讨论】:
-
这不是给你
"System.Int32[]"的C#代码,如果你调用Int32[].ToString(),那是你得到的。无论如何,如果您有一个要打印为单个字符串的数组,请按照副本中的说明查看string.Join()。 -
您好,谢谢您的回复。但是,正如我所说,我需要执行一个 for-each 循环,而不仅仅是打印数组,打印是一个示例(并且只是代码的一小部分),这就是我写 "/*some more这里的行*/" 。我的问题仍未得到解答。
-
能否请您从这个问题中删除“重复”标签,我认为它具有误导性。 @CodeCaster
-
这不是误导。您的 C# 代码不包含整数数组。创建一个minimal reproducible example。如果它确实包含一个整数数组,请参阅副本以了解如何将其打印为逗号分隔的字符串。
-
对代码添加了一些更改,并重新表述了问题的某些部分。所以现在重点 - 我需要在批处理文件中对 int 数组执行 for-each 循环,我不需要打印它。
标签: c# batch-file scripting