命令与控制台应用程序

本文关键字:应用程序 控制台 命令 | 更新日期: 2023-09-27 18:35:44

我正在寻找有关何时构建自定义PowerShell CMDLet与控制台应用程序的指导/文档,并且想知道是否有特定的界限,不建议使用CMDLet。为了使这个问题更具体(和可回答),这是我的方案:

正在尝试解决可编写脚本的数据导入,导入是针对提供允许我读/写数据的 Web 服务的平台完成的。

我有以下(高级别)要求:

  • 调用 Web 服务并检索数据以检查导入的数据是否存在(可能需要更新)
  • 读取 (csv) 导入文件的最大大小为 25MB
  • 读取最大大小为 2MB 的复杂 XML 映射文件
  • 需要可编写脚本(用于自动部署,自动生成过程的一部分)
我现在怀疑使用CMDLet

是否可以完成所有这些事情,但我想知道CMDLet是否是正确的选择。我正在寻找针对我的特定情况的答案,但由于我刚刚开始使用 CMDLets,因此非常感谢有关如何在此处做出选择的其他信息。

命令与控制台应用程序

在我看来,只有两次不可以构建CMDlet。

  1. 你需要快速构建它,它只需要工作,(时间短),或者手头没有很多知道如何使用Powershell的员工。

  2. 您需要通过Linux/Mac等上的Mono-Project跨平台进行脚本导入。

除此之外,我认为Powershell为您提供的灵活性使构建CMDlet变得轻而易举。

如果在可导入的Powershell

模块中将导入逻辑构建为CMDLet,则可以针对CMDlet利用Powershell脚本中的整个.net框架。

在Powershell中,你可以立即满足一些需求。

    CSV文件,
  1. Powershell可以管道CSV文件,而无需在那里编写任何代码
  2. XML Files,powershell也可以通过管道XML进行管道处理
  3. 可脚本化:Powershell是一个脚本引擎。
  4. 调用 Web 服务
  5. :Powershell 还可以调用 Web 服务

Powershell 旨在成为为命令行构建控制台应用程序的更好替代方案。 所以在我看来,利用Powershell的力量从来都不是一个坏主意。

事实上,你可以在控制台应用中运行整个 Powershell 框架,将控制台应用转换为 powershell 命令行,并且很容易实现。

编写 Powershell 主机应用程序

我们的数据库项目通过自定义模块在其导入逻辑上使用 powershell。允许我做这样的事情,

  1. 迁移-员工 -源 旧版产品 -目标产品
  2. 迁移-全部 -源 旧版产品 -目标产品
  3. XYZDB-GetEmployee -EmployeeID 603
  4. XYZDB-GetCustomer -CustomerID 000567
  5. XYZDB-GetCustomer |选择客户 ID、姓名、地址 |Out-File c:''customerDump.txt

等等,但是请注意#5这就是使Powershell很棒的原因。 在 #5 中,我得到了所有客户的转储,只选择他们的 CustomerID、名称和地址,并将它们转储到文本文件中以供参考。 除了GetCustomer CmdLet之外,我不需要编写任何东西,其余的都是Powershell功能。