鉴于提供的配置信息的传统方式,自PS的cmdlet的组件,我不能为他们提供配置通过正常的App.config路由信息。向自定义cmdlet提供配置信息的传统方式是什么?什么是自定义的PowerShell命令
3
A
回答
1
通常我会只使用参数传递数据表明。
Get-MyData -connectionstring $connectionString -table Test ...
当那是不实际的(参数太多,等..),那么你可以随时通过参数提供的路径,配置文件:
Get-MyData -Config .\My.config
然后,您可以读取指定来自cmdlet内部的配置文件。
这允许cmdlet的用户定义他们自己的配置文件来使用。
1
PowerShell是一个外壳。在shell的各个部分之间传递信息的正常方式是shell变量。对于看起来像这样的PowerShell:
$global:MyComponent_MySetting = '12'
# i.e.
$PSDefaultParameterValues
$ErrorActionPreference
如果设置预计跨进程边界继承,则约定将使用环境变量。我将其扩展到跨越C#/ PowerShell边界的设置。一对夫妇的例子:
$env:PATH
$env:PSModulePath
如果你认为这是一个反模式为.NET你可能要重新考虑。这是PAAS托管应用程序的常态,并且将成为在服务器优化CLR(ASP.NET v5)上运行的ASP.NET的新默认值。
见https://github.com/JabbR/JabbRv2/blob/dev/src/JabbR/Startup.cs#L21
注:在写作的时候,我链接到.AddEnvironmentVariables()
我重新审视这个问题了几次,包括要求它自己。我希望把股权地说PowerShell的东西不<appSettings>
很好地工作。国际海事组织(IMO)在这方面拥抱.NET方面的PS外壳方面要好得多。
如果需要复杂的设置才能JSON字符串。 POSH v3 +内置了ConvertFrom-JSON。如果一切都在你的过程中使用相同的复杂的配置把它放在一个以.json文件,并指向文件从一个环境变量。
如果单个文件不足够有喜欢PATH
模式完善的解决方案,GIT的.gitignore分辨率,或ASP.NET的web.config分辨率(我这里就不重复了)。
相关问题
- 1. 如何处理自定义PowerShell命令
- 2. 未自定义PowerShell命令行导入
- 3. '$?'是什么?命令do/mean在PowerShell中?
- 4. PowerShell命令 - 这个输出是什么?
- 5. 自定义命令
- 6. '$'在命令行命令中的含义是什么?
- 7. 什么PowerShell命令可以改变TextInfo.ListSeparator?
- 8. 为什么在这个PowerShell命令
- 9. 什么是OSX Leopard dock的自定义堆栈的命令行语法?
- 10. SBT中`projects`命令的定义是什么?
- 11. 这是什么linux命令的相当于PowerShell的
- 12. 什么是PowerShell的命令行替换的东西
- 13. Git自定义SSH命令
- 14. 与自定义命令
- 15. 自定义CMD命令
- 16. MVVM和自定义命令?
- 17. 用户自定义命令
- 18. django自定义命令
- 19. 自定义execCommand命令
- 20. VisualStudio VSPackage自定义命令
- 21. 自定义distutils命令
- 22. Pycharm manage.py自定义命令
- 23. Windows自定义git命令
- 24. 自定义附加命令
- 25. 基于自定义命令
- 26. 什么是mutt命令的“ - ”?
- 27. django自定义命令抱怨AssertionError:ForeignKey(None)无效。为什么
- 28. Linux来定义自定义Shell命令?
- 29. “令牌?”的确切定义是什么?
- 30. 什么是DIR命令在PowerShell中的替代者
[PowerShell App.Config]的可能重复(http://stackoverflow.com/questions/17960/powershell-app-config) – Howli 2014-05-11 23:29:03
引用此主题:http://stackoverflow.com/questions/17960/powershell- app-config – 2011-03-11 20:50:08
请注意,PowerShell cmdlet不必是基于程序集的。您可以在纯PowerShell中创建cmdlet。 – 2015-01-09 23:38:51