c# - 如何在C#中循环几个dos命令

标签 c# loops

mp.StartInfo.FileName = "E:\\Naag\\execute.bat";
mp.StartInfo.UseShellExecute = false;
mp.StartInfo.CreateNoWindow = true;
mp.StartInfo.RedirectStandardInput = true;
mp.StartInfo.RedirectStandardOutput = true;
for (i = StartSerialNo; i<EndSerialNo;i++)
{
    iCnt++;
    mp.StartInfo.Arguments = sFileName+StartSerialNo.ToString()+ " " + smyName;
    mp.Start();
    mp.WaitForExit();
}

execute.bat 的参数是 filename4567 myname。现在 Execute.bat 将创建 4 个 .out 文件。

因为我想循环它 10 次,所以我应该有 40 个 .out 文件。但我只得到 4 个 .out 文件。

这表明循环只完成了一次。那么到底出了什么问题呢?

如何在 C# 中循环 dos 命令?

最佳答案

您的循环始终使用相同的文件名,这意味着它只是覆盖文件,您需要改变它。而不是使用

sFileName+StartSerialNo.ToString()+ " " + smyName;

作为您需要使用循环计数器的名称i:

sFileName + i + " " + smyName;

结果:

mp.StartInfo.FileName = "E:\\Naag\\execute.bat";
mp.StartInfo.UseShellExecute = false;
mp.StartInfo.CreateNoWindow = true;
mp.StartInfo.RedirectStandardInput = true;
mp.StartInfo.RedirectStandardOutput = true;
for (i = StartSerialNo; i<EndSerialNo;i++)
{
    iCnt++;
    mp.StartInfo.Arguments = sFileName + i + " " + smyName;
    mp.Start();
    mp.WaitForExit();
}

在循环中创建文件的行上放置一个断点会向您显示这一点(并且循环实际上被执行了 10 次)

关于c# - 如何在C#中循环几个dos命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10446031/

相关文章:

c# - 在方法中声明类或结构

javascript - 在数组中使用 split

swift - 如何减少 if-condition 循环 - Swift

PHP:在循环中使用之前声明变量的正确方法

C++ 使用迭代器引用连续值

c# - 显示从 NuGet 下载的组件

c# - 仅从混合字母数字字符串中提取数字

c# - C++ blowfish 使用较少的字母,但 C# blowfish 不

c# - 为什么调用不明确? 'Task.Run(Action)' 和 'Task.Run(Func<Task>)'

javascript - 如何在 JavaScript 中将 .txt 文件中的数据保存到数组中?