我离Powershell有几个月的时间,如果这很明显,请原谅我。
我有一个包含数百个文件夹和文件夹的目录,我想删除根目录和其中一个子文件夹中所有文件的所有内容。
我将创建一个计划任务,每周执行一次。
这是我到目前为止:
get-childitem -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和更新版本,您可以通过向Where-Object
添加参数-Directory
来替换Get-ChildItem
过滤器:
Get-ChildItem 'C:\foo' -Exclude 'subfoldername' -Directory |
Remove-Item -Recurse -Force
试试这个
get-childitem -exclude SubFolderName -recurse | ?{ $_.psiscontainer } | remove-item
此命令将执行您要查找的内容。根据我的阅读,Remove-Item是错误的。
Get-ChildItem -Path D:\Temp -Recurse | Remove-Item -Exclude W3SVC5 -Recurse -force