如何使用CSI.exe脚本参数
当你运行csi.exe /? (安装了Visual Studio 2015更新2),您将获得以下语法
Microsoft (R) Visual C# Interactive Compiler version 1.2.0.51106 Copyright (C) Microsoft Corporation. All rights reserved. Usage: csi [option] ... [script-file.csx] [script-argument] ...
我只是想知道如何将这个[ script-argument ]传递给我的csx脚本文件。 比方说,我的csx脚本(c:\ temp \ a.csx)只有2行,如下所示
using System; Console.WriteLine("Hello {0} !", );
我期望的是在运行以下命令行之后
csi.exe c:\temp\a.csx David
我会得到
Hello David !
但我只是不知道我应该在我的脚本文件中做什么,所以我可以将csi.exe [ script_argument ]传递给我的脚本文件(替换)。
在此先感谢您的时间和帮助。
脚本中有一个名为Args
的全局变量,它具有这些“脚本参数”值。 我可以找到最接近文档的内容是在roslyn repo的pull请求中提到它。 在csx文件(test.csx)中:
using System; Console.WriteLine("Hello {0}!", Args[0]);
使用命令行:
csi.exe test.csx arg1
会给出输出:
你好arg1!
使用Environment.GetCommandLineArgs()
的替代方法可以起作用,但问题是这会获取传递给csi进程的所有参数。 然后你必须将“脚本参数”与csi本身的选项分开。 通过使用内置的Args变量可以避免这项工作,该变量也将更易于维护。
您可以使用Environment.GetCommandLineArgs()
。
示例示例:
using System; Console.WriteLine("Hello {0}!", Environment.GetCommandLineArgs()[2]);
请注意,我正在读第三项,因为Environment.GetCommandLineArgs()
给出了整个命令行(如果使用csi test.csx David
运行脚本,第一项将是csi
,第二项将是test.csx
)