首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CSI.exe脚本参数

如何使用CSI.exe脚本参数
EN

Stack Overflow用户
提问于 2016-06-27 18:32:10
回答 2查看 3.3K关注 0票数 15

你运行csi.exe /的时候?(安装了Visual 2015更新2),您将得到以下语法

代码语言:javascript
复制
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行,如下所示

代码语言:javascript
复制
using System;
Console.WriteLine("Hello {0} !", <argument_from_commandLine>);

我期望的是在运行以下命令行之后

代码语言:javascript
复制
csi.exe c:\temp\a.csx David

我会得到

代码语言:javascript
复制
Hello David !

但是我只是不知道在我的脚本文件中应该做什么,这样我就可以将script_argument csi.exe传递给我的脚本文件(以替换)。

提前感谢您的时间和帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-27 19:02:27

脚本中有一个名为Args的全局变量,它具有这些“脚本参数”值。我能找到的最接近文档的东西是在拉动罗斯林回购的请求中提到它。在csx文件(test.csx)中:

代码语言:javascript
复制
using System;
Console.WriteLine("Hello {0}!", Args[0]);

使用命令行:

代码语言:javascript
复制
csi.exe test.csx arg1

将给出输出:

你好,arg1!

可以使用Environment.GetCommandLineArgs()的另一种方法来工作,但问题是,这会收集传递给csi进程的所有参数。然后,您必须将“脚本参数”与csi本身的选项分开。可以通过使用内置的Args变量来避免这项工作,这个变量也将更易于维护。

票数 22
EN

Stack Overflow用户

发布于 2016-06-27 18:42:23

为此您可以使用Environment.GetCommandLineArgs()

示例示例:

代码语言:javascript
复制
using System;
Console.WriteLine("Hello {0}!", Environment.GetCommandLineArgs()[2]);

注意,我正在阅读第三项,因为Environment.GetCommandLineArgs()给出了整个命令行(如果使用csi test.csx David运行脚本,第一个将是csi,第二个是test.csx)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38060860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档