c# Environment.GetCommandLineArgs
官方釋義:返回包含當前進程的命令行參數(shù)的字符串數(shù)組
最開始接觸這個api是unity自動打包時讀取傳入?yún)?shù)的,但是當時一直不清楚這個參數(shù)是通過什么樣的形式去傳遞的,直到今天寫批處理時才明白是怎么回事。
首先這個參數(shù)獲取到的值默認有一個,即該進程的文件名(“***.exe”),然后其他參數(shù)參數(shù)才是命令行傳入的參數(shù),傳入方式為在命令行執(zhí)行程序,后接參數(shù)。測試一下,首先寫一個c#控制臺程序,做簡單的輸出,代碼如下:
static void Main(string[] args){// Invoke this sample with an arbitrary set of command line arguments.String[] arguments = Environment.GetCommandLineArgs();for (int i = 0; i < arguments.Length; i++){Console.WriteLine(arguments[i]);}}vs在生成解決方案時,會在項目的bin\debug下生成一個可執(zhí)行的exe應(yīng)用程序,啟動實際上也是在執(zhí)行這個生成的exe,我這里運行之后輸出:?E:\VsProjects\CommandTest\CommandTest\bin\Debug\CommandTest.exe。即上面說到的該進程的文件名。
接下來測試這個api,需要通過命令行執(zhí)行上面的exe程序,然后后跟空格,接參數(shù),即可被該api獲取到,這里拿官網(wǎng)的參數(shù)舉例,參數(shù)分割標準引用官網(wǎng)的話:
命令行參數(shù)由空格分隔。?可以使用雙引號 (") 在參數(shù)中包含空格。?但是,單引號 (') 不提供此功能。
如果兩個或偶數(shù)個反斜杠后跟雙引號,則前面的每個反斜杠對被一個反斜杠替代,并且雙引號被刪除。?如果奇數(shù)個(包括僅僅一個)反斜杠后跟雙引號,則前面的每個反斜杠對被一個反斜杠替代,其余的反斜杠被刪除;但在此情況下,雙引號不會被刪除。
測試結(jié)果如下,注意(E:\VsProjects\CommandTest\CommandTest\bin\Debug\CommandTest.exe)不是命令行語句,是當前進程名的輸出:
最初的困擾是這些參數(shù)是通過怎么樣的方式傳入,現(xiàn)在終于明白了。
總結(jié)
以上是生活随笔為你收集整理的c# Environment.GetCommandLineArgs的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openCV中sobel边缘增强
- 下一篇: C# Environment