繁体   English   中英

C#通过命令行传递文件

[英]C# Pass a file via command line

我的程序应该读取该文件并计算其中的元音和辅音的数量。 因此,必须将fileName作为命令行参数传递。 这是我的代码的一部分:

class FileDetails 
{
    static void Main(string[] args) 
    {

        Console.WriteLine(args.Length); 
        foreach (string arg in args)
        { 
            Console.WriteLine(arg); 
        }
    }
}

编译完此文件后,我通过命令行运行它,并将一些参数传递给Main函数:

C:\Users\StepN\Desktop\FILEDETAILS>filedetails abc def xyz

编程的结果如下所示:

3
abc
def
xyz

因此,问题的根源是我需要将文件名作为命令行参数传递,但我不知道如何执行。

在此先感谢您的帮助!

class Program
{
    static void Main(string[] args)
    {
    if (args.Length == 0){
        Console.WriteLine("Please pass command line arguments.");
        return;
    }

    string fileName = args[0];

    }
}

如果在一个命令行参数中使用空格,则将其用双引号引起来。 这就是您应该给可执行文件提供参数的方式:

C:\Users\StepN\Desktop\FILEDETAILS>filedetails.exe "C:\file name.txt"

在代码访问文件名中:

class FileDetails 
{
  static void Main(string[] args) 
  {
     if(args.Length > 0 )
     {
         string filePath = args[0];            

         //read the file using System.IO namespace
     }

   }
}

唯一的问题是文件名带有空格。 如果您的文件名为abc def xyz ,则应使用双引号将其传递:

C:\Users\StepN\Desktop\FILEDETAILS>filedetails "abc def xyz"

有一种方法可以做。

1)打开记事本并编写代码并保存。

2)最重要的是:打开Visual Studio命令提示符并按如下所示编译代码:(i)设置当前路径,该路径用于保存程序。 (ii)使用csc FileName.cs进行编译

3)现在使用以下命令行参数执行程序:(a)FileName arg1 arg2

如果您不喜欢这样做,请创建一个批处理文件并传递参数。 然后运行您的.bat文件,这将触发您的C#程序。 我的意思是,这可能会触发bin文件夹中的.exe。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM