你运行csi.exe /的时候?(安装了Visual 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} !", <argument_from_commandLine>);我期望的是在运行以下命令行之后
csi.exe c:\temp\a.csx David我会得到
Hello David !但是我只是不知道在我的脚本文件中应该做什么,这样我就可以将script_argument csi.exe传递给我的脚本文件(以替换)。
提前感谢您的时间和帮助。
发布于 2016-06-27 19:02:27
脚本中有一个名为Args的全局变量,它具有这些“脚本参数”值。我能找到的最接近文档的东西是在拉动罗斯林回购的请求中提到它。在csx文件(test.csx)中:
using System;
Console.WriteLine("Hello {0}!", Args[0]);使用命令行:
csi.exe test.csx arg1将给出输出:
你好,arg1!
可以使用Environment.GetCommandLineArgs()的另一种方法来工作,但问题是,这会收集传递给csi进程的所有参数。然后,您必须将“脚本参数”与csi本身的选项分开。可以通过使用内置的Args变量来避免这项工作,这个变量也将更易于维护。
发布于 2016-06-27 18:42:23
为此您可以使用Environment.GetCommandLineArgs()。
示例示例:
using System;
Console.WriteLine("Hello {0}!", Environment.GetCommandLineArgs()[2]);注意,我正在阅读第三项,因为Environment.GetCommandLineArgs()给出了整个命令行(如果使用csi test.csx David运行脚本,第一个将是csi,第二个是test.csx)
https://stackoverflow.com/questions/38060860
复制相似问题