0 windows-7 file-management powershell
情况:
我有多个文件夹和文件,如下所示:
C:\Users\myname\Desktop\project1\english\folder1\file1
C:\Users\myname\Desktop\project1\english\folder1\file2
C:\Users\myname\Desktop\project1\english\folder1\file3
C:\Users\myname\Desktop\project1\english\folder2\file4
C:\Users\myname\Desktop\project1\english\folder2\file5
C:\Users\myname\Desktop\project1\chinese\folder1\file1
C:\Users\myname\Desktop\project1\chinese\folder1\file2
C:\Users\myname\Desktop\project1\chinese\folder1\file2
C:\Users\myname\Desktop\project1\chinese\folder2\file4
C:\Users\myname\Desktop\project1\chinese\folder2\file5
Run Code Online (Sandbox Code Playgroud)
目标:
我想删除除“folder1”和“file1”之外的所有文件夹和文件,这样我就只剩下这个:
C:\Users\myname\Desktop\project1\english\folder1\file1
C:\Users\myname\Desktop\project1\chinese\folder1\file1
Run Code Online (Sandbox Code Playgroud)
问题:
这可以用 Powershell 来完成吗?
我之前问过类似的问题,一位出色的用户建议了以下解决方案,但它只删除文件,而不删除文件夹。
$toKeep = "File1", "File3"
gci startFolder -Recurse | ? { !$_.PSIsContainer } | ? { $toKeep -notcontains $_.Name } | remove-item -WhatIf
Run Code Online (Sandbox Code Playgroud)
电源壳3:
Get-ChildItem -Path "C:\Users\myname\Desktop\project1\english\" -File -Recurse |
Where-Object { $_.Name -ne "file1.txt" -and $_.Parent -notin ("folder1","folder2") } |
Remove-Item
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8309 次 |
| 最近记录: |