如何让PowerShell不保存执行出错的命令到历史记录?
让PowerShell不保存执行出错的命令到历史记录
第一步:打开或创建PowerShell配置文件
在PowerShell里运行$PROFILE查看配置文件路径,如果文件不存在,执行New-Item -Path $PROFILE -ItemType File -Force创建文件,然后用记事本或你常用的编辑器打开这个文件。第二步:添加过滤失败命令的脚本
在配置文件里粘贴下面的代码:# 监听命令执行完成事件,立即移除失败命令 Register-EngineEvent PowerShell.PostCommandExecution -Action { $lastCmd = Get-History -Count 1 if ($lastCmd.ExecutionStatus -ne 'Completed') { Remove-History -Id $lastCmd.Id } } | Out-Null # 监听Shell退出事件,最后清理所有遗留的失败命令 Register-EngineEvent PowerShell.Exiting -Action { Get-History | Where-Object { $_.ExecutionStatus -ne 'Completed' } | ForEach-Object { Remove-History -Id $_.Id } } | Out-Null第三步:让配置生效
保存配置文件后,要么重启PowerShell,要么在当前Shell里执行. $PROFILE加载新配置。
这段代码的作用是:每次命令执行完立刻检查状态,只要不是“Completed”(即执行出错)就从历史记录删除;同时在Shell退出时做一次全局清理,确保没有遗漏的失败命令留在历史里。
内容的提问来源于stack exchange,提问作者Abdul Mannan shaikh
相关产品推荐
相关产品推荐

