【问题标题】:Powershell New-Item: How to Accept Confirmation AutomaticallyPowershell New-Item:如何自动接受确认
【发布时间】:2012-07-06 05:34:11
【问题描述】:

我正在尝试使用 powershell 脚本在网络驱动器上创建一个新目录,但它一直提示我

“确认:您确定要执行此操作....”

有没有办法覆盖它,所以它不会问我,因为我是从网络界面运行这个脚本的。

这是我的电话:

New-Item $rollbackDirectory -type Directory -Force

不管有没有-Force参数,它都做同样的事情

我也尝试过这种格式,但没有成功

New-Item -name $rollbackName -itemtype directory -path $rollbackdrive -Debug -Force

【问题讨论】:

    标签: powershell confirm


    【解决方案1】:

    -confirm 仅在您希望 cmdlet 提示您确认时才需要指定。 cmdlet 本身是否会提示确认取决于 cmdlet 的开发人员,他们可以根据 cmdlet 的效果为 cmdlet 设置高、中、低。根据 $ConfirmPreference 的值,您将自动获得 cmdlet 的确认。 $ConfirmPreference 的默认值是高,New-Item 的默认值是中等。因此,如果New-Item 提示确认,则$ConfirmPreference 值必须已更改为中或低。

    使用$ConfirmPreference="high" 甚至$ConfirmPreference="none" 更改它以使New-Item 不提示,或者您的-confirm:$false 解决方案也可以通过覆盖$ConfirmPreference 来工作。

    在这里完美解释:http://blogs.msdn.com/b/powershell/archive/2006/12/15/confirmpreference.aspx

    希望这能解决问题。

    【讨论】:

      【解决方案2】:

      我最终尝试了这个(即使我在另一个 SO 帖子上读到它不正确):

      New-Item $rollbackDirectory -type Directory -Force -Confirm:$false
      

      它奏效了!希望这可以帮助其他有同样问题的人

      【讨论】:

      • -Confirm:$false 是在 cmdlet 级别执行此操作的完全有效方法。另外,请参阅我的答案。
      • 但是会选择什么值?(A,B,C A 是默认值)默认值?如果我们想接受非默认值(B,C,A)并继续下一条语句怎么办?
      猜你喜欢
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 2021-03-12
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多