Powershell仅从目录删除文件


14

我正在尝试删除D:\ MyTemp文件夹中的所有文件(但不是目录),我尝试过:

Remove-Item "D:\MyTemp"
Remove-Item "D:\MyTemp\*"

但是,当我检查时,所有文件仍然存在。
我想念什么?

Answers:


18

尝试这个:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer }

在这里找到它:https : //superuser.com/questions/150748/have-powershell-get-childitem-return-files-only

要仅删除指定目录中的所有文件(忽略子目录):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }

1
在当前目录中这仅列出文件
SteB

我不好,不确定您是否要进行递归。我将编辑原始文件。您可以将-recurse添加到Get-ChildItem命令
bourne 2012年

这有效(仅从指定目录中删除文件,而忽略子目录):Remove-Item“ D:\ MyTemp \ *。*” | { $ _。PSIsContainer}
SteB 2012年

那很棒。真高兴你做到了。
伯恩

抱歉,SteB,我只是注意到我忘了包括Remove-Item。这将是漫长的一天!
伯恩

12

接受的答案对我不起作用,而是我需要:

Get-Childitem -File | Foreach-Object {Remove-Item $_.FullName}

要包括文件夹和文件,请添加-Recurse

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}

1
这也会从子目录中删除文件-可能不是OP的意图...
Robbie Dee

1
这个答案应该被接受。我选择你!
Teoman shipahi

4

您快要在那里了,您只需要:

Remove-Item "D:\MyTemp\*.*"

0

@bourne几乎拥有它:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item

3
这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;相反,请提供不需要问询者澄清的答案。- 评论
-rnxrx

您什么意思不提供答案?它有什么作用?这是页面上唯一的完整答案。
Mordechai

这不是一个自给自足的答案。到目前为止,您的回答是对另一个答案的更正,应将其包括在评论中。
rnxrx

抱歉,我想您不了解Powershell。仅仅因为我提到了另一个答案,它并没有使我的“自给自足”,
Mordechai

您可能想用其他答案来说明问题,使其成为命令。否则,您可能想解释一下Powershell命令的作用
Dennis Nolte
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.