Как выполнить команду в консольном приложении C # Windows? - PullRequest
1 голос
/ 23 июля 2011

Как реализовать этот псевдокод в консольном приложении C # для Windows?

for i=1 to 100
    rename filei newFilei

Основная цель - зациклить и выполнить любую команду cmd в консольном приложении Windows.

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();
        }


    }
}

Ответы [ 3 ]

3 голосов
/ 23 июля 2011

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();
1 голос
/ 23 июля 2011

C # поддерживает четыре различные конструкции цикла:

  1. для
  2. Еогеасп
  3. , а
  4. сделать

Документация для каждого из них достаточно подробная, поэтому я не буду здесь это объяснять.

Операции с файлами могут выполняться с классами File и Directory соответственно. Например, чтобы переименовать файл, вы можете использовать метод Move класса File следующим образом.

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

Поскольку предполагается, что oldName и NewName находятся в одном каталоге, файл с именем 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]);
}
0 голосов
/ 23 июля 2011

Если все, что вы делаете, это переименовываете файлы, вы можете сделать это, используя класс System.IO.File с методом Move

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

...