gpt4 book ai didi

powershell - 如何拥有父脚本但保持与 Powershell 脚本的关注点分离?

转载 作者:行者123 更新时间:2023-12-03 00:40:15 26 4
gpt4 key购买 nike

因此,我正在为产品专用的特定 IIS 站点设置编写一些 IIS 管理脚本,以完成以下任务:

- Create Site
- Create App Pool
- Create Virtual directories

问题是我想为每个关注点保留单独的脚本并在父脚本中引用它们。可以运行父脚本来进行完整的部署/设置。或者,您可以为特定任务运行各个脚本。问题是它们是交互式的,因此它们会请求与完成任务相关的用户信息。

我不知道如何解决每个脚本都会有一个脚本主体从用户那里获取信息的问题,但是如果它被加载到父脚本中,请避免该特定脚本的脚本主体提示用户。

注意:我知道我可以将它们放入模块中,并启动单独的“导出到环境”功能,但是这个脚本将被移动到需要设置的环境中,并且必须手动放置模块 (psm1) 文件进入适当的 PowerShell 模块文件夹只是为了运行脚本是我不是特别喜欢的方法。

我是使用 Powershell 编写脚本的新手,有什么想法或建议吗?

可能的答案*

这可能是(a)解决方案:但我发现我可以从工作目录中导入模块,并且可以从那里访问那些导出的函数。

我也对任何其他建议感兴趣。

最佳答案

他们解决这个问题的方法是在每个子脚本的顶部实现一个参数 block ,该 block 将收集它需要运行的信息。如果单独运行子脚本,则参数 block 将提示用户输入运行该单独脚本所需的数据。这也允许父脚本在父脚本调用子脚本时传递运行下标所需的数据。所需的数据可以在父脚本中硬编码或提示输入或混合使用。这样,您可以使子脚本以静默方式或与用户交互方式运行。您可以从 Powershell 的参数处理机制中免费获得用户交互。在下标中添加一个参数属性以指示 Powershell 将向用户请求这些特定参数值,如果它们尚未由调用脚本提供。

在子脚本的顶部,使用参数 block 来收集所需的数据。

param
(
[parameter(Mandatory=$true, HelpMessage="This is required, please enter a value.")]
[string] $SomeParameter
)

关于powershell - 如何拥有父脚本但保持与 Powershell 脚本的关注点分离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com