[英]How does a program know which arguments are passed?
我是編程世界的新手。
我有一個數據提取程序,可以將MySQL中的數據提取到Word模板文件中。 我不明白主程序如何知道將哪個參數傳遞給參數。 在運行exe時,程序如何知道"Haha, I need to pass a string in there, And it is precisely this string right here"
。
編輯:該程序應該在按下“提取按鈕”時運行,但是exe程序如何知道字符串arg參數在哪里? exe是從哪里得到的?
主要代碼
private static void Main(string[] args)
{
try
{
if (args[0] == "ALL" || args[0] == "*" || args[0] == "all")
{
PrintARs();
Console.Read();
}
else
{
CreateARDocument(args[0]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.Read();
}
}
有多種方法:
從您的代碼中繼承一些想法
如果您的應用名為app.exe
如果你跑了
app.exe 1 2 3 4 5
您將擁有args[] = { 1,2,3,4,5}
並可以瀏覽它們
如果你跑了
app.exe /all c:\my stuff\a.txt
您會得到args[] = { /all, c:\\my, stuff\\a.txt }
您的代碼將查看第一個arg,並說它是“ ALL,*或all” ..因此,笨拙的人在寫“ All”時會失敗..然后將以任何編寫方式將arg發送給函子。
如果您從命令行執行此操作,則它將
myApp.exe "arg0" "arg1" "arg2"
static void Main(string [] args)是應用程序的入口。
args是傳遞給Main的參數
args.Length是您傳入的參數數量
在主函數中設置一個斷點
在解決方案資源管理器中右鍵單擊您的項目->單擊屬性->單擊調試->將abcd放入命令行參數,以調試模式運行該應用程序,並檢查args的值
內部ExtractButton單擊事件:
System.Diagnostics.Process.Start("PATH to your exe file", "Command Line Arguments");
命令參數的順序與args []數組中的命令順序相同。
這些是命令行參數 。
您可能已經注意到,解決方案中始終有一個Program.cs
文件。 那就是您的Main()
方法所在的位置。 在Windows窗體項目中,雖然可以更改它,但它不需要string []參數,然后它運行您的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.