我有一个包含大量子目录和文件的目录。我需要删除除 SubFolder1 下的所有文件。
Initial State: Desired Output:
\ \
|_Folder1 |_Folder1
| |_File1.txt |_SubFolder1
| |_File2.xml |_File3.csv
| |_SubFolder1 |_File4.exe
| | |_File3.csv
| | |_File4.exe
| |_Subfolder2
|_Folder2
| |_ <more files here>
|_Folder3 (etc)
所以这就是我尝试过的:
Remove-Item * -exclude Folder1\Subfolder1\*
我收到这样的警告:
Confirm
The item at C:\foo\Folder1 has children and the -recurse parameter was not specified.
If you continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):
当我指定-recurse
时,它会删除每个文件,并且似乎忽略了我的过滤器。
发生了什么事,这样做的正确方法是什么?
编辑:我已经包含了一个包含上述示例文件夹结构的 zip 文件。如果您想测试解决方案,请在此处尝试。我还包含了第二个具有所需输出的 zip 文件,因此您可以检查它是否正常工作。