我想从源中删除以下文件,但是在源代码中有一个子目录,其中包含具有相似名称的文件。当我运行以下命令时,它正在删除具有类似文件名的子目录中的文件。有没有办法从源而不是子目录中删除文件?
示例:test_1_file
,test_2_file
,test_3_file
存在于每个目录TestFolder
和TestFolder/sub
$source = testfolder
remove-item -Path $source -filter test_*_file -recurse -force
答案 0 :(得分:7)
将@object.details.sum(:value_charged)
cmdlet的输出管道传输到Get-ChildItem
通常最简单。然后,您可以使用Remove-Item
更好的过滤,因为我认为Get-ChildItem
中的-Recurse
存在一些问题。在转到Remove-Item
Where-Object
进一步过滤
Remove-Item
答案 1 :(得分:2)
如果要删除的文件:
全部位于$source
且不得删除其他文件/目录:
Remove-Item -Path $source/test_*_file -Force
不需要-Recurse
(如@Bill_Stewart备注)。
注意:为了概念清晰,我已将通配符模式(test_*_file
)直接附加到$source
路径。
单独使用通配符表达式与<{1}}分开通常会更快(这里可能无关紧要),但它有quirks and pitfalls。