首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接启动.csx (scriptcs) C#脚本,而不打开命令行窗口

直接启动.csx (scriptcs) C#脚本,而不打开命令行窗口
EN

Stack Overflow用户
提问于 2015-12-01 02:11:37
回答 4查看 4.2K关注 0票数 10

Windows中是否有一种直接启动.csx脚本的方法(例如,双击文件,或从“开始”菜单,或通过像Launchy这样的应用程序启动程序),以便脚本在后台运行而不打开命令行窗口?

例如,假设我有一个简单的"lowercase.csx“脚本,它只接受剪贴板中的任何文本,将其转换为小写,并将结果放回剪贴板中。我希望能够双击该.csx文件,使其完全在后台运行,而无需打开任何类型的窗口。

目前,ScriptCS.exe和新的VS2015更新1附带的csi.exe启动程序在运行.csx文件时都将打开控制台窗口,即使该文件没有将任何内容输出到控制台。

注意:我知道如果从控制台窗口启动脚本,则不会打开新窗口。我想在非命令行上下文中启动一个脚本,让它不打开窗口。

Note2:与我在"CS-Script“(一种ScriptCS替代方案)中想要的一样,就是使用"csws.exe”启动文件。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-06 04:22:04

scriptcs不支持这一点。然而,有一个应用程序可以解决这个问题:https://gitlab.com/Lions-Open-Source/ScriptCSW

票数 2
EN

Stack Overflow用户

发布于 2015-12-01 03:02:35

您可以在不使用控制台的情况下制作自己版本的csi.exe

只需创建一个新项目,确保类型设置为WinForms而不是控制台,然后从NuGet添加C#脚本包并复制粘贴csi.exe源代码

票数 3
EN

Stack Overflow用户

发布于 2015-12-01 02:23:09

解决办法是创建您自己的程序,在后台启动它,就像csws.exe一样。

首先创建一个控制台应用程序。

代码语言:javascript
复制
public static void Main(string[] args)
{
    var startInfo = new ProcessStartInfo("path to csi.exe")
    {
        CreateNoWindow = true,
        Arguments = args[1],
        RedirectStandardOutput = true,
        UseShellExecute = false,
    };
    Process.Start(startInfo);
}

(您显然希望传递其余的参数,并检查以确保文件已被传递等等,但这将使您开始工作。我在我的Mac上写了这个答案,因为我的Windows机箱在商店里,所以我不能保证它能工作。)

然后,让控制台应用程序通过将窗口从项目属性屏幕上的控制台应用程序更改为Windows应用程序,而不显示窗口,如这个问题中所述。

最后,将.csx文件配置为始终与应用程序一起打开。然后你可以双击它们,它们就会在没有窗口的情况下运行。

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

https://stackoverflow.com/questions/34011471

复制
相关文章

相似问题

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