Answers:
使用del *.<extension>
或其中之一的别名(例如rm
,如果您更习惯bash的话)。
因此,将del *.avi
删除所有.avi
以当前工作目录结尾的文件。
使用del <directory>\*.<extension>
在其他目录中删除文件。
ls *.avi -Recurse | foreach {rm $_}
假设在目录中打开Powershell实例的首选方法,则通用版本如下:
Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName }
对于特定于目录的版本:
Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly' *.avi | foreach { Remove-Item -Path $_.FullName }
添加-Recurse
到Get-ChildItem
以影响所有包含的文件夹。
例:
Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName }
该Remove-Item
Commandlet应该就是您所需要的。只需传递avi文件所在的根文件夹,然后将recurse
标志和过滤器一起传递即可:
Remove-Item 'C:\Users\ramrod\Desktop\Firefly\*' -recurse -Include *.avi
这比通过Get-ChildItem
并Remove-Item
为每个文件调用查找文件要快。
添加-WhatIf
开关将在删除每个文件之前提示您,这对于不熟悉PowerShell的人来说更安全。
-WhatIf
开关是不必要的。我对此答案进行了修改。+1该Remove-Item
Commandlet是您所需要的,并且比当前接受的答案运行得更快。
-whatif
验证您将仅删除要删除的文件是一个好主意。特别是在向技术专业知识不明的人员提供删除命令时。最好保持训练轮转动。
假设当前目录中有几个文本文件。
dir * -include *.txt
和dir *.txt
按预期工作,但dir -include *.txt
什么也没做。原因已在Stack Overflow中得到了很好的解释。
更正的命令:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}
rm *.avi
?(是的,这是有效的PowerShell语法,因为rm
是一个别名del
。