簡體   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