Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 删除1级以下的文件和文件夹_Powershell_Delete File - Fatal编程技术网

Powershell 删除1级以下的文件和文件夹

Powershell 删除1级以下的文件和文件夹,powershell,delete-file,Powershell,Delete File,我有一些清除共享文件夹的具体要求。共享文件夹被称为“staff”,下面是每次使用的个人文件夹(可能总共60个),其中充满了垃圾 我需要删除每个用户文件夹中的垃圾(混合文件和子文件夹),但保留用户文件夹本身 我还希望根据名称排除一些用户文件夹 目前看起来是这样的: \\fileserver\staff 比尔 子文件夹1 子文件夹2 文件1 文件2 文件3 上下快速移动 文件1 文件2 文件3 布鲁斯特 子文件夹1 子文件夹2 子文件夹3 文件1 布瑞恩 子文件夹1 文件1 文件2 文件3 假设我

我有一些清除共享文件夹的具体要求。共享文件夹被称为“staff”,下面是每次使用的个人文件夹(可能总共60个),其中充满了垃圾

我需要删除每个用户文件夹中的垃圾(混合文件和子文件夹),但保留用户文件夹本身

我还希望根据名称排除一些用户文件夹

目前看起来是这样的:

\\fileserver\staff
比尔
子文件夹1
子文件夹2
文件1
文件2
文件3
上下快速移动
文件1
文件2
文件3
布鲁斯特
子文件夹1
子文件夹2
子文件夹3
文件1
布瑞恩
子文件夹1
文件1
文件2
文件3
假设我想排除名为“Bob”和“Brewster”的用户文件夹,结果如下

\\fileserver\staff
比尔
上下快速移动
菲拉
文件
文件
布鲁斯特
子文件夹1
子文件夹2
子文件夹3
文件1
布瑞恩

我一直在尝试
Get Childitem
Remove Item
,但是可以让
递归
工作,或者
排除
,但不能两者兼而有之。此外,我不确定如何指定从“员工”降低1级后开始

不递归地枚举
\\fileserver\staff
的子文件夹,不包括“Bob”和“Brewster”,然后枚举剩余子文件夹的内容并递归删除它

Get-ChildItem '\\fileserver\staff' -Directory -Exclude 'Bob', 'Brewster' |
    Get-ChildItem -Force |
    Remove-Item -Recurse -Force -WhatIf

验证该语句只删除它应该删除的内容后,删除参数
-WhatIf

。非常感谢你。这样说似乎很容易。我仍在学习Powershell,因此这将帮助我更好地理解逻辑。不过有一点,它确实按预期删除了用户文件夹中的所有文件,但在其中一个文件夹中留下了一个“thumbs.db”。我知道“-Force”会删除隐藏的文件,就是这样。至于
thumbs.db
文件:是的,通常
-Force
会删除这些文件。可能是删除后重新创建的?不过我现在不能调查。也许今晚我到家的时候。
thumbs.db
是否直接在您想要删除其内容的文件夹中?如果是这样,那么您需要将
-Force
添加到
Get ChildItem
,否则该文件不会被列出,因此不会被删除。