gpt4 book ai didi

-Confirm、-Force 和 -WhatIf 的 PowerShell 指南

转载 作者:行者123 更新时间:2023-12-04 02:11:47 25 4
gpt4 key购买 nike

Microsoft 是否有关于何时添加 -Confirm 的官方指南? , -Force , 和 -WhatIf自定义 PowerShell cmdlet 的参数?关于何时/如何使用这些参数似乎没有明确的共识。例如 this issue .

在没有正式指南的情况下,是否有最佳实践或经验法则可供使用?以下是更多背景信息,以及我目前(可能有缺陷)的理解:

-如果什么
-WhatIf flag 显示 cmdlet 在不实际执行任何操作的情况下会执行的操作。这对于潜在不稳定操作的空运行很有用,可以查看实际结果。如果 cmdlet 的 Cmdlet 会自动添加该参数。属性具有 SupportsShouldProcess 属性设置为真。

看起来(但我希望在这里看到更多官方指导)您应该添加 -WhatIf如果您曾经添加或删除资源。 (例如删除文件。)更新现有资源的操作可能不会从中受益。对?

-力量
-Force switch 用于声明“我知道我在做什么,并且我确定我想这样做”。例如,当复制文件 ( Copy-File ) 时,-Force参数含义:

Allows the cmdlet to copy items that cannot otherwise be changed, such as copying over a read-only file or alias.



所以对我来说,您应该添加一个可选的 -Force当您遇到 cmdlet 可能会失败但可以被说服完成操作的情况时使用该参数。

例如,如果您正在创建一个新资源,它将破坏现有的同名资源。 cmdlet 的默认行为将报告错误并失败。但是如果你添加 -Force它将继续(并覆盖现有资源)。对?

-确认
-Confirm标志会自动添加,如 -WhatIf如果 cmdlet 具有 SupportsShouldProcess设置为真。在 cmdlet 中调用 ShouldProcess 然后将提示用户执行该操作。如果 -Confirm flag被添加,不会有提示。 (即通过 cmdlet 调用添加确认。)

所以 -Confirm只要 cmdlet 对系统有重大影响,就应该可用。就像 -WhatIf每当添加或删除资源时,都应该添加它。

考虑到我可能不正确的理解,以下是一些我想具体回答的问题:
  • 什么时候需要添加-WhatIf/-Confirm ?
  • 什么时候需要添加-Force ?
  • 支持-Confirm 是否有意义?和 -Force ?
  • 最佳答案

    我没有研究文档是否如此详细,但以下是基于我的观察:

  • 您应该使用 -WhatIf对于任何改变。更新是可以受益于 -WhatIf 的更改(例如,如果您想进行大量更新怎么办?)。
  • -Force表示“强制覆盖现有项目”或“覆盖只读文件系统属性”。在任何一种情况下,操作的成功都取决于具有权限的用户。
  • -Confirm-Force不是相互排斥的。例如,您可以确认写入文件的操作,但该文件可能受到只读属性的保护。在这种情况下,除非您还指定 -Force,否则操作将失败。 .
  • 关于-Confirm、-Force 和 -WhatIf 的 PowerShell 指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749333/

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