I recently wrote a small PowerShell script to clean a Visual Studio solution. It's used by a small team of 5 persons on a regular basis. I built it in PowershellISE (GUI client) and it works great, but some time later I ran it from Cmd
and then after completion I was to my big surprise not in the same directory as previously.
Now, the unexpected result was only an inconvenience. But as an avid fan of the StackExchangeNetwork I read a horror story about a script gone wrong. Its a really interesting read about well-intent script that deleted a users home directory.
- What can I do in my script to make it more resiliant to unwanted side-effects?
- What are common best practices in Powershell to prevent accidents?
- How can I remain in the same directory after script execution?`
#Change path here
$redQueenPath = "C:\Users\YourName\Source\Repos\RedQueen\"
$deletedDirCount = 0
cd $redQueenPath
Get-ChildItem .\ -include bin,obj -Recurse | ForEach-Object ($_) {
Write-Host "Removing '$_'"
Remove-Item $_.FullName -Force -Recurse
$deletedDirCount = $deletedDirCount + 1
}
Write-Host "=================================================================="
Write-Host "Total: $deletedDirCount dirs removed."
asd