我有一个文件夹,需要删除除一小部分文件和文件夹之外的所有文件和文件夹。
我已经可以排除文件列表,但没有找到排除文件夹及其内容的方法。
这是文件夹结构:
|-C:\temp
\-C:\temp\somefile.txt
\-C:\temp\someotherfile.txt
| |-C:\temp\foldertodelete
\-C:\temp\foldertodelete\file1.txt
| |-C:\temp\foldertokeep
| \-C:\temp\foldertokeep\file2.txt
我想保留 somefile.txt 和文件夹foldertokeep 及其内容。
这就是我现在所拥有的:
Get-ChildItem -Path 'C:\temp' -Recurse -exclude somefile.txt | Remove-Item -force -recurse
这确实不会删除 somefile.txt。有没有办法从删除列表中排除文件夹foldertokeep 及其内容?
Get-ChildItem -Path 'C:\temp' -Recurse -exclude somefile.txt |
Select -ExpandProperty FullName |
Where {$_ -notlike 'C:\temp\foldertokeep*'} |
sort length -Descending |
Remove-Item -force
-recurse 开关在删除项目上无法正常工作(它将尝试在删除文件夹中的所有子项目之前删除文件夹)。按长度降序对全名进行排序可确保在删除文件夹中的所有子项目之前不会删除任何文件夹。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)