传递到应用程序中的命令行参数

时间:2021-04-05 14:32:45


// Hello3.cs
// arguments: A B C D
using System;

public class Hello3
{
   public static void Main(string[] args)
   {
      Console.WriteLine("Hello, World!");
      Console.WriteLine("You entered the following {0} command line arguments:",
         args.Length );
      for (int i=0; i < args.Length; i++)
      {
         Console.WriteLine("{0}", args[i]); 
      }
   }
}


arguments  的值是怎么传进去的?  



10 个解决方案

#1


程序启动的时候,如程序A启动B,A可以给B传参(Main中的东东)

#2


是在命令行输入的。比如你的程序叫MyProgram.exe
那在命令行输入 MyPrograam  p1, p2, p3
args里面就是p1,p2,p3
如果是在vs里调试,你可以右击项目,属性,调试,启动选项里输入参数

#3


你在这个main的exe程序同目录 建一个
xxx.bat文件
里面写上
xxx.exe(你的程序exe) 这里随便写 可以加上空格 随便加一些东西 
然后运行这个bat文件

#4


是操作系统传递给Main方法的,argv[0]为自身运行目录路径和程序名。比如你的Main函数需要额外的参数,还可以自己添加参数分别存放在argv[1]、argv[2].......在Main函数中再使用argv[1]、argv[2]...

#5


围观一下答案~

#6


引用 1 楼 wmg494005678 的回复:
程序启动的时候,如程序A启动B,A可以给B传参(Main中的东东)



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// arguments:A B C D
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Hello World!");
           Console.WriteLine("You enterd the following {0} command line arguments",args.Length);
           for (int i = 0; i < args.Length; i++) {
               Console.WriteLine("{0}",args[i]);
           }
               Console.ReadLine();
        }
    }
   
}


这个就不显示,好像传不进去

#7


引用 2 楼 bwangel 的回复:
是在命令行输入的。比如你的程序叫MyProgram.exe
那在命令行输入 MyPrograam  p1, p2, p3
args里面就是p1,p2,p3
如果是在vs里调试,你可以右击项目,属性,调试,启动选项里输入参数






using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// arguments:A B C D
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Hello World!");
           Console.WriteLine("You enterd the following {0} command line arguments",args.Length);
           for (int i = 0; i < args.Length; i++) {
               Console.WriteLine("{0}",args[i]);
           }
               Console.ReadLine();
        }
    }
   
}





这个怎么传进去

#8


引用 3 楼 jiaoshiyao 的回复:
你在这个main的exe程序同目录 建一个
xxx.bat文件
里面写上
xxx.exe(你的程序exe) 这里随便写 可以加上空格 随便加一些东西 
然后运行这个bat文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// arguments:A B C D
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Hello World!");
           Console.WriteLine("You enterd the following {0} command line arguments",args.Length);
           for (int i = 0; i < args.Length; i++) {
               Console.WriteLine("{0}",args[i]);
           }
               Console.ReadLine();
        }
    }
   
}




这个怎么传进去

#9


先编译 
编译完成后进到bin目录
右键新建文本文档 更名为1.bat 
里面写
你项目的名称.exe a=1 b=2 c=3
然后 保存 运行1.bat 就可以看到效果了

#10


传值启动嘛。
如果启动他的程序也是C#的,那应该是:
System.Diagnostics.Process.Start(path, arguments)
// path = Hello3的路径 ; arguments = “ABCD”。 

#1


程序启动的时候,如程序A启动B,A可以给B传参(Main中的东东)

#2


是在命令行输入的。比如你的程序叫MyProgram.exe
那在命令行输入 MyPrograam  p1, p2, p3
args里面就是p1,p2,p3
如果是在vs里调试,你可以右击项目,属性,调试,启动选项里输入参数

#3


你在这个main的exe程序同目录 建一个
xxx.bat文件
里面写上
xxx.exe(你的程序exe) 这里随便写 可以加上空格 随便加一些东西 
然后运行这个bat文件

#4


是操作系统传递给Main方法的,argv[0]为自身运行目录路径和程序名。比如你的Main函数需要额外的参数,还可以自己添加参数分别存放在argv[1]、argv[2].......在Main函数中再使用argv[1]、argv[2]...

#5


围观一下答案~

#6


引用 1 楼 wmg494005678 的回复:
程序启动的时候,如程序A启动B,A可以给B传参(Main中的东东)



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// arguments:A B C D
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Hello World!");
           Console.WriteLine("You enterd the following {0} command line arguments",args.Length);
           for (int i = 0; i < args.Length; i++) {
               Console.WriteLine("{0}",args[i]);
           }
               Console.ReadLine();
        }
    }
   
}


这个就不显示,好像传不进去

#7


引用 2 楼 bwangel 的回复:
是在命令行输入的。比如你的程序叫MyProgram.exe
那在命令行输入 MyPrograam  p1, p2, p3
args里面就是p1,p2,p3
如果是在vs里调试,你可以右击项目,属性,调试,启动选项里输入参数






using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// arguments:A B C D
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Hello World!");
           Console.WriteLine("You enterd the following {0} command line arguments",args.Length);
           for (int i = 0; i < args.Length; i++) {
               Console.WriteLine("{0}",args[i]);
           }
               Console.ReadLine();
        }
    }
   
}





这个怎么传进去

#8


引用 3 楼 jiaoshiyao 的回复:
你在这个main的exe程序同目录 建一个
xxx.bat文件
里面写上
xxx.exe(你的程序exe) 这里随便写 可以加上空格 随便加一些东西 
然后运行这个bat文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// arguments:A B C D
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Hello World!");
           Console.WriteLine("You enterd the following {0} command line arguments",args.Length);
           for (int i = 0; i < args.Length; i++) {
               Console.WriteLine("{0}",args[i]);
           }
               Console.ReadLine();
        }
    }
   
}




这个怎么传进去

#9


先编译 
编译完成后进到bin目录
右键新建文本文档 更名为1.bat 
里面写
你项目的名称.exe a=1 b=2 c=3
然后 保存 运行1.bat 就可以看到效果了

#10


传值启动嘛。
如果启动他的程序也是C#的,那应该是:
System.Diagnostics.Process.Start(path, arguments)
// path = Hello3的路径 ; arguments = “ABCD”。