使用Remove-Item cmdlet但不包括子目录

时间:2017-03-24 19:57:20

标签: powershell

我想从源中删除以下文件,但是在源代码中有一个子目录,其中包含具有相似名称的文件。当我运行以下命令时,它正在删除具有类似文件名的子目录中的文件。有没有办法从源而不是子目录中删除文件?

示例:test_1_filetest_2_filetest_3_file存在于每个目录TestFolderTestFolder/sub

$source = testfolder 
remove-item -Path $source -filter test_*_file -recurse -force

2 个答案:

答案 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