【问题标题】:How to execute command in a C# Windows console app?如何在 C# Windows 控制台应用程序中执行命令?
【发布时间】:2012-07-19 00:19:26
【问题描述】:

如何在 C# Windows 控制台应用程序中实现此伪代码?

for i=1 to 100
    rename filei newFilei

关键目标是在 Windows 控制台应用程序中循环和执行任何 cmd 命令。

class Program
{
    static void Main(string[] args)
    {
        string strCmdLine;
        System.Diagnostics.Process process1;
        process1 = new System.Diagnostics.Process();


        Int16 n = Convert.ToInt16(args[1]);
        int i;
        for (i = 1; i < n; i++)
        {
            strCmdLine = "/C xxxxx xxxx" + args[0] + i.ToString();
            System.Diagnostics.Process.Start("CMD.exe", strCmdLine);
            process1.Close();
        }


    }
}

【问题讨论】:

  • 显示你写的代码...
  • 这还能编译吗?这看起来像是来自 Java 的粗略翻译
  • 您可以考虑将您的问题改为Can I repeatedly execute commands on windows command prompt "DOC" using C#?
  • 不要在你的问题前加上标签。

标签: c# .net windows console-application


【解决方案1】:

Diagnostics.Process

            System.Diagnostics.Process proc;

            cmd = @"strCmdLine = "/C xxxxx xxxx" + args[0] + i.ToString();

            proc = new System.Diagnostics.Process();
            proc.EnableRaisingEvents = false;
            proc.StartInfo.FileName = "cmd";
            proc.StartInfo.Arguments = cmd;
            proc.Start();

【讨论】:

    【解决方案2】:

    C# 支持四种不同的循环结构:

    1. for
    2. foreach
    3. while
    4. do

    每一个的文档都非常详细,我不会在这里再次解释这些。

    可以分别使用FileDirectory 类执行文件相关操作。例如,要重命名文件,您可以像这样使用 File 类的 Move 方法。

    File.Move("oldName","NewName");

    因为oldNameNewName 都假定在同一个目录中,所以名为oldName 的文件被重命名为NewName

    关于启动其他应用程序,Process 类提供了启动进程并监控其执行的能力。我将继续研究这个类及其功能给读者。

    问题中包含的伪代码可以用 C# 翻译成以下代码。请注意,此示例不包含任何人们一直希望包含在生产代码中的错误处理。

    string[] sourceFileNames=new string[100];
    string[] destFileNames = new string[sourceFileNames.Length];
    //fill arrays with file names.
    for (int i=0; i < fileNames.Length; i++)
    {
    File.Move(sourceFileNames[i], destFileNames[i]);
    }
    

    【讨论】:

      【解决方案3】:

      如果您所做的只是重命名文件,您可以通过使用 System.IO.File 类和 Move 方法来做到这一点

      http://msdn.microsoft.com/en-us/library/system.io.file.move.aspx

      【讨论】:

      • 不,重命名只是一个例子。我在原始问题中添加了我正在处理的部分代码。
      猜你喜欢
      • 2023-04-08
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多