zza*_*ndy 13 .net powershell scripting
我是一名称职的C#程序员,也是PowerShell的新手.到底有什么好处呢?它更像是程序员的工具还是管理员?
请分享您的经验.何时使用.NET程序集编写脚本比使用C#工具更容易?你用它做什么真正的生产任务?
也许问题应该是:与C#相比有什么好处,而不是批处理?
使用.NET程序集编写脚本比使用C#工具更容易吗?
啊,看,就是这样.PowerShell弥补了批处理文件和.NET世界之间的鸿沟.PowerShell回答了这个问题,"如果你要编写一个具有.NET全部功能的新命令解释器,那么它是完全动态的,并且在命令shell中几乎拥有了人们想要的大部分内容?"
那么你什么时候使用PowerShell而不是C#?对于集成或编排其他应用程序的小型应用程序来说更方便 - 它更方便,因为您不必编译它,并且它已经有一种将数据传递给其他脚本和scriptlet的标准方法,这很容易知道PowerShell的人(知道PowerShell).
我是一名C#开发人员,自从测试版以来,它仍然被称为Monad.我还在UNIX上进行了大量的开发,包括使用Korn Shell进行自动化/脚本编写.对我来说,PowerShell是一个天赐之物,因为我对Korn Shell与Windows的小阻抗不匹配感到厌倦.例如,指定网络共享路径特别严重"\\\\\\server\\\\share"IIRC.根据字符串被评估的次数,你有多少次使用反斜杠来逃避猜测游戏.
我将PowerShell用于许多自动化任务,例如:
要替换自定义命令行实用程序:
您可以使用PowerShell作为替换您以前编写的所有小命令行实用程序的好方法.想想这个.PowerShell是一种功能相当强大的脚本语言,可让您访问大多数.NET Framework.它特别擅长参数解析,即它有一个内置的参数解析引擎,它为您提供:命名参数,位置参数,可选参数,开关参数,管道绑定参数,参数验证等.现在考虑典型命令行实用程序中的代码将多少用于参数解析与实际功能.我几乎停止编写命令行实用程序(除非它们特别复杂 - 然后你无法击败VS调试器).我让PowerShell为我处理所有参数解析.使用PowerShell 2.0,只需使用适当格式化的注释装饰脚本,就可以非常轻松地向实用程序添加文档/用法.
我还使用PowerShell作为.NET REPL:
"{0,20:F1}" -f 41.22.您还可以轻松地在自己的C#应用程序中托管PowerShell引擎.如果您为最终用户提供要使命令行可编写脚本的功能,这会派上用场.您可以将这些功能编写为PowerShell cmdlet(在C#中).然后可以直接从命令行使用这些cmdlet,如果在GUI应用程序中托管PowerShell,则可以从那里访问同一组代码,例如:
private bool VerifyPowerShellScriptSignature(string path)
{
using (var runspaceInvoker = new RunspaceInvoke())
{
Collection<PSObject> results =
runspaceInvoker.Invoke("Get-AuthenticodeSignature " + path);
Signature signature = results[0].BaseObject as Signature;
return signature == null ? false :
(signature.Status == SignatureStatus.Valid);
}
}
Run Code Online (Sandbox Code Playgroud)
要编写C#工具,通常需要设置Visual Studio项目(或另一个IDE中的项目).如果您"手动"执行此操作,则至少需要一个构建脚本来运行C#编译器.如果对于特定任务而言这似乎是一个过多的开销,并且您只需要一个简单的单文件源和程序是一体化解决方案,那么PowerShell脚本可能是更好的选择.
一些可能的原因:
| 归档时间: |
|
| 查看次数: |
8288 次 |
| 最近记录: |