![](/img/trans.png)
[英]how to delete last directory and its subfolders that created in a path using powershell
[英]delete directory object and its content in powershell
我有此脚本试图删除所有早于7天的文件夹。 所有文件夹都位于名为“ BackupPath”的特定目录下。
这是脚本:
$date=Get-Date -UFormat "%d-%m-%y"
$BackupPathday="C:\"+$env:computername+"GPOBackup\$date"
$BackupPath="C:\"+$env:computername+"GPOBackup"
if ((Test-Path $BackupPathday) -eq 0) {
New-Item -ItemType Directory -Force -Path $BackupPathday
}
else {
Write-Host "Today´s backup already exists"
}
$Folders=Get-ChildItem $BackupPath
foreach ($i in $Folders) {
$Days=((Get-Date) - $i.CreationTime).Days
#PSISContainer is true means that $i is a folder, ohterwise is a file
if ($Days -ge 7 -and $i.PsISContainer -eq $True) {
$i.Delete()
}
}
运行它时,出现以下错误消息:
异常调用参数为“ 0”的“删除”:“目录不为空。”在C:\\ Users \\ x \\ Desktop \\ power.ps1:18 char:14 + $ i.Delete <<<<( )+ CategoryInfo:未指定:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException异常,使用“ 0”参数调用“ Delete”:“目录不为空。”位于C:\\ Users \\ x \\ Desktop \\ power .ps1:18 char:14 + $ i.Delete <<<<()+ CategoryInfo:未指定:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
有什么办法可以强制删除这些文件夹及其内容? 我不知道是否有现有方法可以执行此操作,因为我是PowerShell的新手。
谢谢
-Directory
开关仅获取文件夹,然后Where-object根据日期条件过滤这些文件夹,最后remove-item将其删除。(删除Whatif
以应用该命令)
Get-ChildItem -Path $BackupPath -Directory |
Where-Object { ((get-date) - $_.CreationTime).days -ge 7} |
Remove-Item -Recurse -WhatIf
另请在测试不存在的目录时使用
if( -not (Test-path c:\temp) ) {"Do something"}else { "nothing"}
表示如果表达式的计算结果为false,则“执行某些操作”,否则为“无”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.