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-ItemCommandlet应该就是您所需要的。只需传递avi文件所在的根文件夹,然后将recurse标志和过滤器一起传递即可:
Remove-Item 'C:\Users\ramrod\Desktop\Firefly\*' -recurse -Include *.avi
这比通过Get-ChildItem并Remove-Item为每个文件调用查找文件要快。
添加-WhatIf开关将在删除每个文件之前提示您,这对于不熟悉PowerShell的人来说更安全。
-WhatIf开关是不必要的。我对此答案进行了修改。+1该Remove-ItemCommandlet是您所需要的,并且比当前接受的答案运行得更快。
-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。