命令与控制台应用程序
本文关键字:应用程序 控制台 命令 | 更新日期: 2023-09-27 18:35:44
我正在寻找有关何时构建自定义PowerShell CMDLet与控制台应用程序的指导/文档,并且想知道是否有特定的界限,不建议使用CMDLet。为了使这个问题更具体(和可回答),这是我的方案:
我正在尝试解决可编写脚本的数据导入,导入是针对提供允许我读/写数据的 Web 服务的平台完成的。
我有以下(高级别)要求:
- 调用 Web 服务并检索数据以检查导入的数据是否存在(可能需要更新)
- 读取 (csv) 导入文件的最大大小为 25MB
- 读取最大大小为 2MB 的复杂 XML 映射文件
- 需要可编写脚本(用于自动部署,自动生成过程的一部分)
是否可以完成所有这些事情,但我想知道CMDLet是否是正确的选择。我正在寻找针对我的特定情况的答案,但由于我刚刚开始使用 CMDLets,因此非常感谢有关如何在此处做出选择的其他信息。
在我看来,只有两次不可以构建CMDlet。
-
你需要快速构建它,它只需要工作,(时间短),或者手头没有很多知道如何使用Powershell的员工。
-
您需要通过Linux/Mac等上的Mono-Project跨平台进行脚本导入。
除此之外,我认为Powershell为您提供的灵活性使构建CMDlet变得轻而易举。
如果在可导入的Powershell模块中将导入逻辑构建为CMDLet,则可以针对CMDlet利用Powershell脚本中的整个.net框架。
在Powershell中,你可以立即满足一些需求。
- CSV文件,
- Powershell可以管道CSV文件,而无需在那里编写任何代码
- XML Files,powershell也可以通过管道XML进行管道处理
- 可脚本化:Powershell是一个脚本引擎。 调用 Web 服务
- :Powershell 还可以调用 Web 服务
Powershell 旨在成为为命令行构建控制台应用程序的更好替代方案。 所以在我看来,利用Powershell的力量从来都不是一个坏主意。
事实上,你可以在控制台应用中运行整个 Powershell 框架,将控制台应用转换为 powershell 命令行,并且很容易实现。
编写 Powershell 主机应用程序
我们的数据库项目通过自定义模块在其导入逻辑上使用 powershell。允许我做这样的事情,
- 迁移-员工 -源 旧版产品 -目标产品
- 迁移-全部 -源 旧版产品 -目标产品
- XYZDB-GetEmployee -EmployeeID 603
- XYZDB-GetCustomer -CustomerID 000567
- XYZDB-GetCustomer |选择客户 ID、姓名、地址 |Out-File c:''customerDump.txt
等等,但是请注意#5这就是使Powershell很棒的原因。 在 #5 中,我得到了所有客户的转储,只选择他们的 CustomerID、名称和地址,并将它们转储到文本文件中以供参考。 除了GetCustomer CmdLet之外,我不需要编写任何东西,其余的都是Powershell功能。