Powershell 删除除一个文件夹和所有根文件之外的所有文件夹/文件

Powershell 删除除一个文件夹和所有根文件之外的所有文件夹/文件,powershell,scheduled-tasks,powershell-2.0,Powershell,Scheduled Tasks,Powershell 2.0,我已经离开Powershell几个月了,如果这是显而易见的,请原谅 我有一个包含数百个文件和文件夹的目录,我想删除除根目录和其中一个子文件夹中的所有文件之外的所有内容 我将创建一个计划任务,每周执行一次 这就是我到目前为止所做的: get-childitem -recurse | ?{ $_.psiscontainer } | remove-item 但很明显,我只是在删除文件夹。试试这个 get-childitem -exclude SubFolderName -recurse | ?{ $

我已经离开Powershell几个月了,如果这是显而易见的,请原谅

我有一个包含数百个文件和文件夹的目录,我想删除除根目录和其中一个子文件夹中的所有文件之外的所有内容

我将创建一个计划任务,每周执行一次

这就是我到目前为止所做的:

get-childitem -recurse | ?{ $_.psiscontainer } | remove-item
但很明显,我只是在删除文件夹。

试试这个

get-childitem -exclude SubFolderName -recurse | ?{ $_.psiscontainer } | remove-item
试试这个

get-childitem -exclude SubFolderName -recurse | ?{ $_.psiscontainer } | remove-item

要保留一个子文件夹的内容,还是仅保留子文件夹本身?对于前者,请执行以下操作:

Get-ChildItem 'C:\foo' -Exclude 'subfoldername' |
    Where-Object { $_.PSIsContainer } |
    Remove-Item -Recurse -Force
对于后者,请在第二步中删除子文件夹的内容:

Get-ChildItem 'C:\foo' -Exclude 'subfoldername' |
    Where-Object { $_.PSIsContainer } |
    Remove-Item -Recurse -Force
Get-ChildItem 'C:\foo\subfoldername' | Remove-Item -Recurse -Force
使用PowerShell v3及更新版本,您可以通过添加参数-Directory以获取ChildItem来替换Where对象筛选器:


要保留一个子文件夹的内容,还是仅保留子文件夹本身?对于前者,请执行以下操作:

Get-ChildItem 'C:\foo' -Exclude 'subfoldername' |
    Where-Object { $_.PSIsContainer } |
    Remove-Item -Recurse -Force
对于后者,请在第二步中删除子文件夹的内容:

Get-ChildItem 'C:\foo' -Exclude 'subfoldername' |
    Where-Object { $_.PSIsContainer } |
    Remove-Item -Recurse -Force
Get-ChildItem 'C:\foo\subfoldername' | Remove-Item -Recurse -Force
使用PowerShell v3及更新版本,您可以通过添加参数-Directory以获取ChildItem来替换Where对象筛选器:


此命令将执行您正在查找的操作。从我所读到的,删除项是错误的

Get-ChildItem -Path D:\Temp -Recurse | Remove-Item -Exclude W3SVC5 -Recurse -force

此命令将执行您正在查找的操作。从我所读到的,删除项是错误的

Get-ChildItem -Path D:\Temp -Recurse | Remove-Item -Exclude W3SVC5 -Recurse -force