powershell - 删除每个文件夹和子文件夹中的 X 个文件
问题描述
我想删除文件夹及其子文件夹中的文件,但不是X
每个文件夹中的最后一个文件。例如,在C:\Test
我想保留 10 个 txt 文件,但也在C:\Test\subtest1
和C:\Test\subtest2
. 这里,X
X 是我要保留的文件数。
但它不会在每个文件夹中保留 10 个文件,而是在整个树状结构中保留。
我的脚本功能不全,但在C:\Test
目录中做得很好:
Set-ExecutionPolicy unrestricted $txtfiles = 'C:\Users\MUC8VX\Documents\Test
ForEach-Object { Get-ChildItem $txtfiles | where{ -not $_.PsIsContainer}|
sort LastWriteTime -desc| select -Skip 10 |
Remove-Item -Include *.txt* -Force }
如果我添加-Recurse
它不会在每个文件夹中保留 10 个文件,而是在整个树状结构中保留:
Set-ExecutionPolicy unrestricted
$txtfiles =`C:\Users\MUC8VX\Documents\Test'
ForEach-Object { Get-ChildItem $txtfiles -Recurse | where{ -not
$_.PsIsContainer}| sort LastWriteTime -desc|
select -Skip 10 | Remove-Item -Include *.txt* -Force }
编辑:非常感谢Manuel Batsching。
这是一个通用脚本:
#Insert your parent folder which contains files and subfolders
Get-Childitem -Path C:\Your\Parent\Folder -Recurse |
Group-Object Directory |
ForEach-Object {
$_.Group |
#sort by the last written files
Sort-Object LastWriteTime -Descending |
#Keep the X last files you want to keep
Select-Object -Skip X |
#Remove files according to their extension
Remove-Item -Include *.extension* -Force }
解决方案
我没有测试,但你可以试试这个。
Set-ExecutionPolicy unrestricted
$txtfiles = 'C:\Users\MUC8VX\Documents\Test'
Get-ChildItem -Directory -Recurse -Path $txtfiles | ForEach-Object {
Get-ChildItem -Path $_.fullname -Include *.txt | Sort-Object LastWriteTime -Descending | Select-Object -Skip 10 | Remove-Item -Force
}
基本上,此代码递归地遍历每个文件夹,对于每个文件夹,它会找到文件,跳过 10 并删除所有其他文件。
推荐阅读
- python - Keras 金融神经网络输入错误:预期 4 维,接收输入形状 (1172, 1, 5)
- sql - PostgreSQL 错误:关系不存在
我在 postgres 中创建了 2 个表,其中一个似乎很好,但另一个返回错误:关系“系列”不存在。这两张表完全一样,除了主键和一些列。似乎是什么问题?当主键不同时,不应该创建表吗?'''
CREATE TABLE Films ( Fid varchar (3) NOT NULL DEFAULT '000' PRIMARY KEY, Uiid varchar (3), FOREIGN KEY (Uii
- python - 将时间增量数组转换为瞬间数组
- azure-data-explorer - Kusto.Cloud.Platform.Utils.UtilsArgumentException 无效的 Kusto 连接方案:'' 使用 API 'Query' 时
- audio - 制作音频均衡器视频
- elixir - Elixir 中的竞争条件测试
- java - 如何在用户完成之前询问用户字符串输入?
- excel - Excel运动模板排名表
- reactjs - redux-thunk 是如何工作的?
- java - 无法计算折扣