首页/系统/Windows 运维速查/自动变量 $_ $? $LASTEXITCODE $Error
本包目录(413 条)
CMD 常用命令74 条
PowerShell 基础66 条
网络排查41 条服务与进程42 条磁盘与文件43 条用户与权限34 条AD 域与组策略39 条日志与事件38 条远程管理36 条

自动变量 $_ $? $LASTEXITCODE $Error

内置自动变量记录当前对象、上条命令成败、外部程序退出码与错误集合,是脚本判断与排错的核心抓手。

Windows 运维速查系统更新于 2026-10-12
变量$_ 当前管道对象;$? 上条成功布尔;$LASTEXITCODE 外部程序退出码;$Error 错误列表;$null 空值
要点$LASTEXITCODE 仅由外部程序/脚本更新;内部 cmdlet 成败看 $? 与 $Error[0]

常用示例

常用示例
ping -n 1 127.0.0.1 > $null
$LASTEXITCODE
if (-not $?) { $Error[0] }
Get-Process | ForEach-Object { $_.Id }
脚本判断成败的规范:内部命令看 $?,外部命令看 $LASTEXITCODE(0 成功)。

易错点

  • $? 只反映最近一条命令,被中间语句覆盖后判断失效,要立即取值
  • 外部程序退出码语义各异(如 robocopy 小于 8 都算成功),别一律按 0 判断

数据来源与参考

  • Microsoft Learn:about_Automatic_Variables

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌