如何使用 CSI.exe 脚本参数
How to use CSI.exe script argument
当你运行csi.exe/? (安装了 Visual Studio 2015 update 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 !
但我不知道我应该在我的脚本文件中做什么,所以我可以将 csi.exe [script_argument] 传递到我的脚本文件(替换 )。
提前感谢您的宝贵时间和帮助。
你可以使用 Environment.GetCommandLineArgs()
。
您的示例示例:
using System;
Console.WriteLine("Hello {0}!", Environment.GetCommandLineArgs()[2]);
请注意,我正在阅读 third 项,因为 Environment.GetCommandLineArgs()
给出了整个命令行(如果您 运行 使用 csi test.csx David
,第一个将是 csi
,第二个将是 test.csx
)
脚本中有一个名为 Args
的全局变量,它具有这些 "script argument" 值。我能找到的最接近文档的是在 pull requests for the roslyn repo 中提到的。在 csx 文件中 (test.csx):
using System;
Console.WriteLine("Hello {0}!", Args[0]);
使用命令行:
csi.exe test.csx arg1
将给出输出:
Hello arg1!
可以使用 Environment.GetCommandLineArgs()
的替代方法,但问题是这会获取传递给 csi 进程的所有参数。然后你必须将 "script arguments" 与 csi 本身的选项分开。使用内置的 Args 变量可以避免这项工作,该变量也将更易于维护。
当你运行csi.exe/? (安装了 Visual Studio 2015 update 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 !
但我不知道我应该在我的脚本文件中做什么,所以我可以将 csi.exe [script_argument] 传递到我的脚本文件(替换 )。
提前感谢您的宝贵时间和帮助。
你可以使用 Environment.GetCommandLineArgs()
。
您的示例示例:
using System;
Console.WriteLine("Hello {0}!", Environment.GetCommandLineArgs()[2]);
请注意,我正在阅读 third 项,因为 Environment.GetCommandLineArgs()
给出了整个命令行(如果您 运行 使用 csi test.csx David
,第一个将是 csi
,第二个将是 test.csx
)
脚本中有一个名为 Args
的全局变量,它具有这些 "script argument" 值。我能找到的最接近文档的是在 pull requests for the roslyn repo 中提到的。在 csx 文件中 (test.csx):
using System;
Console.WriteLine("Hello {0}!", Args[0]);
使用命令行:
csi.exe test.csx arg1
将给出输出:
Hello arg1!
可以使用 Environment.GetCommandLineArgs()
的替代方法,但问题是这会获取传递给 csi 进程的所有参数。然后你必须将 "script arguments" 与 csi 本身的选项分开。使用内置的 Args 变量可以避免这项工作,该变量也将更易于维护。