Added remove-empty-dirs.ps1

This commit is contained in:
Markus Fleschutz 2021-02-09 14:46:54 +01:00
parent 8f819aa0ff
commit 8c72f3bd85
4 changed files with 45 additions and 0 deletions

View File

@ -65,6 +65,7 @@ query-smart-data.ps1, queries the S.M.A.R.T. data of your HDD/SSD's and saves it
new-email.ps1, starts the default email client to write a new email
reboot.ps1, reboots the local computer (requires admin rights)
reboot-fritzbox.ps1, reboots the FRITZ!box device
remove-empty-dirs.ps1, removes empty subfolders within the given directory tree
search-files.ps1, searches the given pattern in the given files
scan-ports.ps1, scans the network for open/closed ports
send-email.ps1, sends an email message

1 Filename Description
65 new-email.ps1 starts the default email client to write a new email
66 reboot.ps1 reboots the local computer (requires admin rights)
67 reboot-fritzbox.ps1 reboots the FRITZ!box device
68 remove-empty-dirs.ps1 removes empty subfolders within the given directory tree
69 search-files.ps1 searches the given pattern in the given files
70 scan-ports.ps1 scans the network for open/closed ports
71 send-email.ps1 sends an email message

View File

@ -73,6 +73,7 @@ The following PowerShell scripts can be found in the [Scripts/](Scripts/) subfol
* [next-joke.ps1](Scripts/next-joke.ps1) - gets the next random Juck Norris joke
* [reboot.ps1](Scripts/reboot.ps1) - reboots the local computer (requires admin rights)
* [reboot-fritzbox.ps1](Scripts/reboot-fritzbox.ps1) - reboots the FRITZ!box device
* [remove-empty-dirs.ps1](Scripts/remove-empty-dirs.ps1) - removes empty subfolders within the given directory tree
* [search-files.ps1](Scripts/search-files.ps1) - searches the given pattern in the given files
* [scan-ports.ps1](Scripts/scan-ports.ps1) - scans the network for open/closed ports
* [send-email.ps1](Scripts/send-email.ps1) - sends an email message

43
Scripts/remove-empty-dirs.ps1 Executable file
View File

@ -0,0 +1,43 @@
#!/snap/bin/powershell
<#
.SYNTAX ./remove-empty-dirs.ps1 [<dir-tree>]
.DESCRIPTION removes empty subfolders within the given directory tree
.LINK https://github.com/fleschutz/PowerShell
.NOTES Author: Markus Fleschutz / License: CC0
#>
param($DirTree = "")
try {
if ($DirTree -eq "" ) {
$DirTree = read-host "Enter the path to the directory tree"
}
$Folders = @()
foreach ($Folder in (Get-ChildItem -path "$DirTree" -Recurse | Where { $_.PSisContainer })) {
$Folders += New-Object PSObject -Property @{
Object = $Folder
Depth = ($Folder.FullName.Split("\")).Count
}
}
$Folders = $Folders | Sort Depth -Descending
$Deleted = @()
foreach ($Folder in $Folders)
{
if ($Folder.Object.GetFileSystemInfos().Count -eq 0) {
$Deleted += New-Object PSObject -Property @{
Folder = $Folder.Object.FullName
Deleted = (Get-Date -Format "hh:mm:ss tt")
Created = $Folder.Object.CreationTime
'Last Modified' = $Folder.Object.LastWriteTime
Owner = (Get-Acl $Folder.Object.FullName).Owner
}
Remove-Item -Path $Folder.Object.FullName -Force
}
}
exit 0
} catch {
write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}

0
Scripts/speak-german.ps1 Normal file → Executable file
View File