使用PowerShell删除小于100GB文件遇参数错误,求问题原因
问题原因及修正方案
直接错误点
你将两个独立参数-Force和-Recurse连写成了-Force-Recurse,PowerShell会把这个组合当成一个不存在的参数名,因此抛出参数找不到的错误。
修正后的命令
首先拆分参数,同时建议添加-File参数仅针对文件操作(避免误删文件夹——文件夹的Length属性默认是0,会被误判为小于100GB):
Get-ChildItem -File | Where-Object {$_.Length -lt 100GB} | Remove-Item -Force -Recurse
更严谨的补充说明
- 推荐用
Get-ChildItem替代别名ls,显式命令更清晰易懂 - 如果需要递归遍历所有子目录的文件,应该给
Get-ChildItem加上-Recurse参数(Remove-Item的-Recurse用于删除文件夹及其内容,针对单个文件时无需添加),准确命令如下:
Get-ChildItem -File -Recurse | Where-Object {$_.Length -lt 100GB} | Remove-Item -Force
- 执行删除前,建议先添加
-WhatIf参数测试,确认目标文件是否符合预期:
Get-ChildItem -File -Recurse | Where-Object {$_.Length -lt 100GB} | Remove-Item -Force -WhatIf
内容的提问来源于stack exchange,提问作者God of Money
相关产品推荐
相关产品推荐

