我想编写一个简单的批处理文件来复制几个文件。
但是,我厌倦了批处理文件,因为它们是如此限制,我想写一个简单的.cs文件,我可以直接从命令行执行脚本。
如何从命令行运行“.cs”文件,让它运行一个脚本?
答案 0 :(得分:5)
除非你编译它,否则你不能。但是,PowerShell具有与C#类似的语法,并且非常强大。
答案 1 :(得分:4)
您需要将其编译为可执行文件,然后运行此可执行文件。
也许你可以写一个批处理文件来实现这个目标吗?
更严重的是,请看看作为替代方案的Powershell,如scottm的答案所提到的那样(我已经相应地加上了)。
答案 2 :(得分:1)
Microsoft Roslyn允许您从命令行执行C#文件,就像批处理文件,PowerShell,Python等一样。
步骤1:安装Roslyn,创建一个新的控制台应用,然后使用以下行执行脚本:
scriptEngine.ExecuteFile("DemoClass.cs");
或
scriptEngine.ExecuteFile("DemoScript.csx");
第2步:关联" .csx"使用已编译的控制台应用程序的文件,它们将像编译到Visual Studio项目中一样执行。
现在我再也不用在我的生活中编写DOS批处理文件了。
<强>更新强>
答案 3 :(得分:1)
请参阅http://www.csscript.net/,如果安装它,您可以像DOS批处理文件一样运行简单的.cs文件(即无需将它们编译到项目中)。
答案 4 :(得分:0)
您可以在命令提示符下查看如何编译程序。使用此技术,您可以输入.cs文件,编译.exe,然后运行.exe。
http://msdn.microsoft.com/en-us/library/ms172492%28v=vs.80%29.aspx
然而,这似乎有点麻烦。在命令行项目中启动Visual Studio并快速输入代码有什么问题?
答案 5 :(得分:0)
试试这个。 http://www.sliver.com/dotnet/SnippetCompiler/ 我不完全确定这是你所追求的。
答案 6 :(得分:0)
$Source = (gc csharpfilename.cs|Out-String)
#compile Csharp
Add-Type -TypeDefinition $Source -Language CSharp
#Call you function like this
[namespaceName.className]::functionName("Parameters/Arguments")