- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
今天我第一次尝试使用 PowerShell (v3.0),并对它的一些错误处理概念的奇怪实现方式感到非常沮丧。
我编写了以下代码(使用远程注册表 PowerShell 模块)
try
{
New-RegKey -ComputerName $PCName -Key $Key -Name $Value
Write-Host -fore Green ($Key + ": created")
}
catch
{
Write-Host -fore Red "Unable to create RegKey: " $Key
Write-Host -fore Red $_
}
$ErrorActionPreference = "Stop"
PS C:\windows\system32> C:\Data\Scripts\PowerShell\Error.ps1
Errorhandling: Stop
SOFTWARE\MySoftware does not exist. Attempting to create
Unable to create RegKey: SOFTWARE\MySoftware
Key 'SOFTWARE\MySoftware' doesn't exist.
PS C:\Data\Scripts\PowerShell> .\Error.ps1
Errorhandling: Stop
SOFTWARE\MySoftware does not exist. Attempting to create
New-RegKey : Key 'SOFTWARE\MySoftware' doesn't exist.
At C:\Data\Scripts\PowerShell\Error.ps1:17 char:13
+ New-RegKey -ComputerName $PCName -Key $Key -Name $Value
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,New-RegKey
SOFTWARE\MySoftware: created
New-RegKey -ComputerName $PCName -Key $Key -Name $Value
New-RegKey -ComputerName $PCName -Key $Key -Name $Value -ErrorAction Stop
PS C:\Data\Scripts\PowerShell> $PSVersionTable
Name Value
---- -----
PSVersion 3.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18408
BuildVersion 6.2.9200.16481
PSCompatibleVersions {1.0, 2.0, 3.0}
PSRemotingProtocolVersion 2.2
最佳答案
由于您运行的是 V3,因此您还可以选择使用 $PSDefaultParameterValues:
$PSDefaultParameterValues += @{'New-RegKey:ErrorAction' = 'Stop'}
$PSDefaultParameterValues = @{}
$PSDefaultParameterValues += @{'New-RegKey:ErrorAction' = 'Stop'}
$PSDefaultParameterValues = $PSDefaultParameterValues.clone()
$PSDefaultParameterValues += @{'New-RegKey:ErrorAction' = 'Stop'}
'*:ErrorAction'
而不是
'New-RegKey:ErrorAction'
在上面的代码中。
关于PowerShell - 为整个脚本设置 $ErrorActionPreference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245579/
今天我第一次尝试使用 PowerShell (v3.0),并对它的一些错误处理概念的奇怪实现方式感到非常沮丧。 我编写了以下代码(使用远程注册表 PowerShell 模块) try { Ne
两者, $ErrorActionPreference 变量和 -ErrorAction cmdlet 参数应该定义 non-terminating errors 的行为. 由于变量是全局的并且参数特定
考虑以下脚本 #requires -version 2.0 [CmdletBinding()] param ( ) $script:ErrorActionPreference = "Stop" Set
我们将 PowerShell 用于一些自动化构建脚本。不幸的是,默认情况下,PowerShell 在出错后继续。 通常,我可以通过设置 $ErrorActionPreference = Stop 来改
我需要处理Powershell脚本中的非终止错误。最有效的方法是什么? 将$ErrorActionPreference变量设置为停止并使用try/catch $ErrorActionPreferenc
我希望我的模块中的所有函数都默认为 $ErrorActionPreference = 'Stop' .是否可以不修改所有功能? 我每个函数都有一个文件。 最佳答案 假设你的模块是一个脚本模块,即用Po
我有一些 powershell 脚本,其中包含以下内容: $ErrorActionPreference = "stop" trap { Write-Error $_.Exception; } 使用 p
默认情况下,环境的 $ErrorActionPreference 设置为“继续”。当 cmdlet 抛出错误时,脚本将继续。 我希望它“停止”并陷入我的 try-catch block 的捕获中。在我
问题:powershell 脚本由于使用 $ErrorActionPreference 时应由 try 块捕获的异常而停止 例子: $ErrorActionPreference = 'Stop' tr
将 -Verbose 添加到 Copy-Item 命令似乎会使该命令忽略 $ErrorActionPreference 的值。这是一个错误还是我不明白的东西? 我认为这个脚本应该在它显示“为什么这样显
我的情况: $ErrorActionPreference = "Stop"; "1 - $ErrorActionPreference;" Get-ChildItem NoSuchFile.txt -E
我已经在我的 windows 10 机器上安装了 Docker for Windows。当我尝试从“windows 容器”“切换到 linux 容器”时,出现错误。 Unable to start:
我是一名优秀的程序员,十分优秀!