我有一个需要删除所有文件和文件夹的文件,除了一小部分文件和文件夹.
我已经可以排除文件列表,但是没有找到排除文件夹的方法.
这是文件夹结构:
|-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
Run Code Online (Sandbox Code Playgroud)
我想保留somefile.txt和文件夹foldertokeep及其内容.
这就是我现在所拥有的:
Get-ChildItem -Path 'C:\temp' -Recurse -exclude somefile.txt | Remove-Item -force -recurse
Run Code Online (Sandbox Code Playgroud)
这真的不删除somefile.txt.有没有办法从删除列表中排除文件夹foldertokeep及其内容?
mjo*_*nor 50
Get-ChildItem -Path 'C:\temp' -Recurse -exclude somefile.txt |
Select -ExpandProperty FullName |
Where {$_ -notlike 'C:\temp\foldertokeep*'} |
sort length -Descending |
Remove-Item -force
Run Code Online (Sandbox Code Playgroud)
-recurse开关在Remove-Item上无法正常工作(它将尝试在删除文件夹中的所有子项之前删除文件夹).按长度降序对全名进行排序可确保在删除文件夹中的所有子项之前没有删除任何文件夹.
Poo*_*nny 26
在PowerShell 3.0及更低版本中,您可以尝试简单地执行此操作:
Remove-Item -recurse c:\temp\* -exclude somefile.txt,foldertokeep
Run Code Online (Sandbox Code Playgroud)
除非我缺少一些参数,否则这似乎就是诀窍......
编辑:看下面的评论,删除项目的行为在PS3之后发生了变化,此解决方案似乎不再适用.
gui*_*lem 14
我使用这种方法,假设您想在根级别上排除某些文件或文件夹,但随后又要删除其中的所有内容。
C:.
????delme1
? ? delme.txt
? ?
? ????delmetoo
????delme2
????folder1
? keepmesafe.txt
?
????folder2
Run Code Online (Sandbox Code Playgroud)
因此,您要删除所有内容并保留folder1和folder2
Get-ChildItem -Exclude folder1,folder2 | Remove-Item -Recurse -Force
Run Code Online (Sandbox Code Playgroud)
还有许多其他解决方案,但是我发现这很容易理解和记住。
我使用了下面的内容,刚从第一行中删除-Recurse,它将所有文件和子文件夹保留在排除文件夹列表下.
Get-ChildItem -Path "PATH_GOES_HERE" -Exclude "Folder1", "Folder2", "READ ME.txt" | foreach ($_) {
"CLEANING :" + $_.fullname
Remove-Item $_.fullname -Force -Recurse
"CLEANED... :" + $_.fullname
}
Run Code Online (Sandbox Code Playgroud)
是的,我知道这是一个旧线程。我无法在 Powershell 5 中获得上述任何答案,所以这是我的想法:
Get-ChildItem -Path $dir -Exclude 'name_to_ignore' |
ForEach-Object {Remove-Item $_ -Recurse }
Run Code Online (Sandbox Code Playgroud)
这会将 -Recurse 移动到 Remove-Item 而不是找到项目的位置。
根据MSDN Remove-Item,-exclude参数存在一个已知问题。请改用此变体。
Get-ChildItem * -exclude folderToExclude | Remove-Item
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69648 次 |
| 最近记录: |