批量删除脚本的PowerShell问题

时间:2019-07-16 14:00:53

标签: powershell powershell-4.0

我正在尝试删除文件大小小于2kB的所有内容,并且正在使用以下代码:

Get-ChildItem $path -Filter *.html -Recurse -File |
    ? {$_.Length -lt 2000} |
    % {Remove-Item $_.FullName}

我不断收到这样的错误:

Remove-Item : Cannot retrieve the dynamic parameters for the cmdlet.
The specified wildcard character pattern is not valid: 07 somefilename
filename.mp3
At line:1 char:66
+ ... -Recurse -File | ? {$_.Length -lt 2000} | % {Remove-Item $_.FullName}
+                                                  ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-Item], ParameterBindingException
    + FullyQualifiedErrorId : GetDynamicParametersException,Microsoft.PowerShell.Commands.RemoveItemCommand

1 个答案:

答案 0 :(得分:1)

这可能避免了[]通配符出现文件名问题,将fileinfo对象直接传递到remove-item。

ls $path *.html -r -file | where length -lt 2000 | remove-item -whatif