我有脚本根据修改日期删除文件夹。 如果文件夹名称中只包含数字,有人可以帮我删除吗?
$locations=import-csv "C:\Temp\Scripts\AgeOffDirsGeneral.csv"
foreach ($location in $locations)
{
$Source=$location.Source
Get-ChildItem $source |Where-Object {$_.psiscontainer} | Foreach-Object {Remove-Item -Recurse -Force $_.FullName}
}
答案 0 :(得分:0)
Remove-Item接受管道输入,因此不需要ForEach
如果输出看起来没问题,请删除-WhatIf
locations=import-csv "C:\Temp\Scripts\AgeOffDirsGeneral.csv"
foreach ($location in $locations){
$Source=$location.Source
Get-ChildItem $source -Dir -Recurse|
Where-Object { $_.Name -match '^\d+$'} |
Remove-Item -Force -WhatIf
}
BTW中间变量$ source可以避免直接插入$ location.Source
答案 1 :(得分:-1)
我可以使用-like
标记解决此问题。
$locations=import-csv "C:\Temp\Scripts\AgeOffDirsGeneral.csv"
foreach ($location in $locations)
{
$Source=$location.Source
Get-ChildItem $source | Where-Object { $_.psiscontainer -and $_.Name -like '*[0-9]*' } | Foreach-Object {Remove-Item -Recurse -Force $_.FullName}
}