gpt4 book ai didi

c# - C# 中的 Windows shell 脚本

转载 作者:太空狗 更新时间:2023-10-29 21:02:49 25 4
gpt4 key购买 nike

我非常确定,几个月前我读到有关启动 Windows 脚本的可能性,不仅是通常的 .bat,还有 .js。 vbs.cs !

我今天早上愿意在 C# .cs 文件中尝试 windows 脚本,但我碰巧在网上找不到任何引用资料。所有 CS/C# 脚本的东西似乎都是第 3 方。

您是否有纯微软风格的 C# for Windows 命令行脚本的知识引用/链接?

是的,这意味着动态 C# 编译...所以也许我认为这是可能的完全错误。告诉我。

最佳答案

选项A

如果您正在寻找真正的 C# 开发体验,请尝试 CS-Script .

您可以使用注释指令来使用第三方库并包含其他 C# 脚本。

//css_nuget dotnetzip
using Ionic.Zip;
using System;

class Script
{
static public void Main()
{
using(ZipFile zip = new ZipFile())
{
zip.AddFile("app.exe");
zip.AddFile("readme.exe");
zip.Save("app.zip");
}
}
}

就我个人而言,我更喜欢 CS-Script 因为我注意到1) 更快 脚本启动与下面的 scriptcs2) 相比,使用 namespaces 没有问题。你在这里写的C#才是真正的C#。 VS IDE 可以正常工作。

选项B

或者,看看 scriptcs

http://scriptcs.net/

也可以用VS写一些简单的脚本:

 //MyScript.Main()

public class MyScript{
public static void Main(){
Console.WriteLine("hello world.");
}
}

当您准备好使用 scriptcs 运行脚本时,删除 // 注释。

C:\> scriptcs myscript.cs

此外,您还可以使用 nuget 安装第 3 方包,如 NLog

C:\> scriptcs -install NLog

我在 scriptcs 中发现的一个问题是无法使用 namespacesscriptcs 底层使用 Roslyn 编译器来编译 C# 脚本。不幸的是,Roslyn 在编译脚本时存在漏洞设计实现。特别是,为了让 Roslyn 处理 REPL 类型的用例,每个脚本编译都使用嵌套类来存储变量和状态。由于在嵌套的 class 中不能有命名空间,因此使用 namespacesscriptcs 将失败。因此,如果您尝试导入包含命名空间的松散 *.cs 文件(例如来自 VS 项目的域对象),则需要删除命名空间。

这个糟糕的设计决定给我留下了不好的印象,所以在 Roslyn 团队支持命名空间之前,我主要使用 cs-script 选项 A

关于c# - C# 中的 Windows shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6490836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com