PowerShell中的异常日志记录
我当前在PowerShell脚本中记录异常时遇到问题。我正在尝试将文件复制到C:\Windows\System32,如果日志文件出错,我想在日志文件中添加一行错误。到目前为止,我已经尝试了两种方法 例1: 例2:PowerShell中的异常日志记录,powershell,Powershell,我当前在PowerShell脚本中记录异常时遇到问题。我正在尝试将文件复制到C:\Windows\System32,如果日志文件出错,我想在日志文件中添加一行错误。到目前为止,我已经尝试了两种方法 例1: 例2: 我可以将项目添加到日志文件中,这样我就知道该文件没有权限问题。我遗漏了什么?我相信您收到的错误是不可终止的。这就是为什么它不会在一个捕捉块中结束 尝试此操作,而不是复制项目行: Copy-Item $scriptPath\Devcon.exe C:\Windows\System32 -
我可以将项目添加到日志文件中,这样我就知道该文件没有权限问题。我遗漏了什么?我相信您收到的错误是不可终止的。这就是为什么它不会在一个捕捉块中结束 尝试此操作,而不是复制项目行:
Copy-Item $scriptPath\Devcon.exe C:\Windows\System32 -ErrorAction Stop
.这就解决了问题。非常感谢。方法1不适用于这些变量名
$error
是一个保留的自动变量名,用于存储全局错误列表,不能将其用作循环变量。一般来说,@neolik是正确的,您需要将ErrorAction
设置为Stop
以强制。如果您更改了变量名(例如,foreach($err in$errors)
),如果您愿意,您仍然可以使用总体方法#1。
$LogPath = "C:\Test.txt
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
Try{
Copy-Item $scriptPath\Devcon.exe C:\Windows\System32
}
Catch [System.Exception]
{
add-content -Path $LogPath -Value "There was an error why trying to copy the file." -Force
add-content -Path $LogPath -Value $Error -Force
}
Copy-Item $scriptPath\Devcon.exe C:\Windows\System32 -ErrorAction Stop