You need to enable JavaScript to run this app. 如何触发该PowerShell脚本错误并将错误捕获写入日志文件
优惠活动
大模型
产品
解决方案
定价
更多

如何触发该PowerShell脚本错误并将错误捕获写入日志文件

手动触发PowerShell脚本错误及错误捕获测试方法

可快速复现的错误测试场景

  • 权限不足场景:对目标路径(如D:\ToolUpload\Retail-EIP、D:\Backup)或源文件配置权限限制:右键目标文件夹→属性→安全→编辑,选中当前运行脚本的用户,勾选「写入」权限的「拒绝」复选框,运行脚本时移动文件操作会直接触发权限不足错误。
  • 文件被占用场景:在源路径c:\uploadtool\下新建符合命名规则的测试文件,如test-Retail-EIP.txt,用记事本/Office软件打开该文件保持不关闭,此时文件处于锁定状态,脚本执行Move-Item时会触发文件被占用的报错。
  • 目标路径无效场景:临时修改脚本中的目标路径变量,例如将$RetailDest改为不存在的盘符路径Z:\ToolUpload\Retail-EIP,脚本无法创建目标路径,执行移动操作时会触发路径不存在错误。
  • 源文件丢失场景:先在源路径下放置符合规则的测试文件,脚本启动后枚举完文件、尚未执行移动操作的间隙,手动删除该源文件,移动时会触发找不到源文件的报错。

现有脚本错误捕获逻辑优化

原脚本catch块存在逻辑错误,会导致错误信息无法正常写入$out对象和日志:

# 原错误写法:管道会直接吞噬赋值结果,$out.Result为空
$out.Result = "Error: $($_.Exception.Message)" | Add-Content -Path $LogFile -Force

修改为拆分执行即可:

# 修正后写法
$out.Result = "Error: $($_.Exception.Message)"
Add-Content -Path $LogFile -Value $out.Result -Force

修正后触发错误时,错误信息会同时写入CSV日志文件,并且发送报错通知邮件,测试时可直接查看D盘logs目录下的当日CSV日志验证捕获结果。

内容的提问来源于stack exchange,提问作者essex lake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 19:06:05