[英]Windows shell scripts in C#
我很确定几个月前我读到有关启动Windows脚本的可能性,不仅是通常的.bat
,还有.js
, .vbs
和.cs
!
我愿意今天早上在C# .cs
文件中尝试使用Windows脚本,但我无法在网上找到任何引用。 所有CS / C#脚本的东西似乎都是第三方。
你有任何关于C#for Windows命令行脚本的知识参考/链接,纯微软风格?
是的,这意味着动态C#编译......所以也许我认为这是可能的。 就告诉我嘛。
如果您正在寻找真正的C#开发体验,请尝试使用CS-Script 。
您可以使用comment指令来使用第三方库并包含其他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) 更快的脚本启动时间scriptcs
以下; 2)没有问题,使用的命名空间 。 你在这里写的C#是真正的C#。 VS IDE正常工作。
或者,看一下scriptcs
您还可以使用VS编写一些简单的脚本:
//MyScript.Main()
public class MyScript{
public static void Main(){
Console.WriteLine("hello world.");
}
}
当您准备好使用scriptcs
运行脚本时,请删除//
注释。
C:\\> scriptcs myscript.cs
此外,您可以使用nuget安装第三方软件包,如NLog
C:\\> scriptcs -install NLog
我在scriptcs
发现的一个问题是无法使用命名空间 。 scriptcs
下的脚本使用Roslyn编译器来编译C#脚本。 不幸的是,Roslyn在编译脚本时有一个漏洞的设计实现。 特别是,为了让Roslyn处理REPL类型的用例,每个脚本编译都使用嵌套类来存储变量和状态。 由于使用带有scriptcs
的命名空间在嵌套class
使用命名空间 , scriptcs
将失败。 因此,如果您尝试导入包含名称空间的松散*.cs
文件(如VS项目中的域对象),则需要删除名称空间。
这个糟糕的设计决定给我留下了不好的印象,所以我主要使用cs-script
选项A,直到Roslyn团队支持命名空间。
您可以通过WSH(Windows Scripting Host)运行脚本:
http://msdn.microsoft.com/en-us/library/9bbdkx3k(v=vs.85).aspx
另一个为yoyu提供大量功能和可用命令的解决方案是PowerShell
:
http://technet.microsoft.com/en-us/scriptcenter/dd742419
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.