如何用参数递归地调用控制台应用程序

本文关键字:调用 控制台 应用程序 递归 何用 参数 | 更新日期: 2023-09-27 18:04:32

我想有一个控制台应用程序,在一个参数中传递,以便能够调用自己在最初发送的相同命令参数中传递。

如果我尝试这个

static void Main(string[] args)
{
    Assembly ass = System.Reflection.Assembly.GetExecutingAssembly();
    string cmd = Environment.CommandLine;
    Process again = new Process();
    again.StartInfo.FileName = ass.Location;
    again.StartInfo.Arguments = args[0];
    Console.WriteLine("Running with: " + args[0]);
    System.Threading.Thread.Sleep(10000);
    again.Start();
    return;
}

初始调用打印"running with: Argument1",但第二次调用失败,因为args数组为空。

如何用参数递归地调用控制台应用程序

适合我。我完全编译了以下代码:

using System;
using System.Diagnostics;
using System.Reflection;
class Test
{
    static void Main(string[] args)
    {
        Assembly ass = System.Reflection.Assembly.GetExecutingAssembly();
        string cmd = Environment.CommandLine;
        Process again = new Process();
        again.StartInfo.FileName = ass.Location;
        again.StartInfo.Arguments = args[0];
        Console.WriteLine("Running with: " + args[0]);
        System.Threading.Thread.Sleep(1000);
        again.Start();
        return;
    }
}

命令行:

csc Test.cs

然后运行为:

Test.exe hello

…并且它递归地启动额外的进程,每个进程都输出"Running with: hello"。