You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何USB优盘执行dir -Force -Recurse >$null会抛出Win32Exception?

解决U盘执行PowerShell递归遍历命令时的Win32Exception异常

问题原因

-ErrorAction SilentlyContinue参数无法屏蔽System.ComponentModel.Win32Exception,是因为这类异常属于底层系统调用抛出的终止错误,绕过了PowerShell cmdlet的错误处理机制,所以直接加参数无效。

解决方案

1. 精准捕获并忽略特定异常

使用try/catch块专门捕获Win32Exception,不影响其他潜在错误的排查:

try {
    Get-ChildItem -Path E:\ -Force -Recurse > $null
}
catch [System.ComponentModel.Win32Exception] {
    # 仅忽略该特定异常,无额外操作
}

注:dir是Get-ChildItem的别名,使用全名更清晰。

2. 重定向所有错误流到Null(简单粗暴)

如果不需要区分错误类型,直接将错误流(流2)合并到输出流后一起重定向到Null:

dir -Force -Recurse > $null 2>&1

此方法会屏蔽所有错误,包括其他可能的有效错误,需谨慎使用。

3. 跳过系统保护目录

U盘上的$RECYCLE.BIN、System Volume Information等系统目录可能存在无法访问的文件,即使chkdsk修复后仍会触发异常,可直接排除这些路径:

Get-ChildItem -Path E:\ -Force -Recurse -Exclude '$RECYCLE.BIN', 'System Volume Information' > $null

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:47:28