在编写 PowerShell 脚本时,我注意到当某些 cmdlet 遇到问题时,它们会显示交互式提示,例如非空目录上的 Remove-Item。这在尝试自动化任务时是致命的,我更希望操作失败并抛出异常或返回错误的返回代码,以便整个脚本不会被锁定等待响应。
有没有办法强制 PowerShell 自动失败,而不是寻求用户对操作的输入?
见Get-Help about_Preference_Variables
:
$确认首选项 ------------------ 确定 Windows PowerShell 是否自动提示您 在运行 cmdlet 或函数之前进行确认。 ... 无:Windows PowerShell 不自动提示。 要请求确认特定命令,请使用 cmdlet 或函数的 Confirm 参数。
所以:
> $ConfirmPreference = 'None'
Run Code Online (Sandbox Code Playgroud)
Eris 提出的解决方案有效地启动了另一个 PowerShell 实例。使用更简单的语法执行此操作的另一种方法是外壳到 powershell.exe 的另一个实例。
powershell.exe -NonInteractive -Command "Remove-Item 'D:\Temp\t'"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46077 次 |
最近记录: |