Hi!
I've created this script
$Remove=@()
$Et1="0"
$Et2="9"
Get-ChildItem "C:\Test" -Recurse |
Where-Object {(Get-ChildItem -Path $_.FullName) -eq $null} |
foreach($_){
$Sav=Split-Path($_) -leaf
if($Sav.StartsWith($Et1) -or $Sav.StartsWith($Et2)){}
else{
$Remove=$Remove+$_.fullname
Remove-Item $_.FullName -force
}
}
$Remove= $Remove | sort{Split-Path($_) -leaf}
$drives = foreach ($path in $Remove) {
$prophash = @{
Nome= split-path($path) -leaf
Percorso = $path
}
#create a new object from the property hash
New-Object PSObject -Property $prophash
}
#embed the style in the html header
$head = @'
<Title>Deleting Empty Folder Report</Title><style>
body
{
background-color:#FFFFFF;
font-family:Verdana;
font-size:12pt;
}
td, th
{
border:1px solid blue;
border-collapse:collapse;
}
th
{
color:white;
background-color:green;
}
table, tr, td, th { padding: 5px; margin: 0px }
table { margin-left:50px; }</style>
'@
#create an xml document from the HTML fragment
[xml]$html = $drives | ConvertTo-Html -fragment
#check each row, skipping the TH header row
for ($i=1;$i -le $html.table.tr.count-1;$i++) {
$class = $html.CreateAttribute("class")
}
#create the final report from the innerxml which should be html code
$body = @"<H1>Deleting Empty Folder Report for $Folder</H1>
$($html.innerxml)"@
#put it all together
$Today = Get-Date -Format "dd-MMM"
$Name = "Deleting Empty" + $Today
ConvertTo-HTML -head $head -PostContent "<br><i>$(Get-date)</i>" -body $body |
Out-File "C:\Log\$Name.html" -Encoding ascii
Invoke-Item "C:\Log\$Name.html"I would expect, when I run the script, to delete only empty folders instead also deletes files...
those files aren't empty, indeed some are 2 pages doc files
Thanks
A