A small tip for a clean programming. Instead of writing all the 1000 lines of code in the same PS1 file, let us write the Methods in a separate PS1 and from the main PS1, load the other files. This will not add any advantage in terms of performance. But, definitely help the developers to maintain a clean codebase and clear readability.
I have created a separate PS1 file called LoadMethods.ps1.
In that, I wrote the below methods.
############# Add the PowerShell Snappin ############### function AddPowerShellSnapin() { Add-Content "$ProgressFile" "Entered into AddPowerShellSnapin Method" $Progress = "0:Entered" try { Write-Host "Adding PowerShell Snap-in" -ForegroundColor Yellow # Try to get the PowerShell Snappin. If not, then adding the PowerShell snappin on the Catch Block Get-PSSnapin "Microsoft.SharePoint.PowerShell" } catch { if($Error[0].Exception.Message.Contains("No Windows PowerShell snap-ins matching the pattern 'Microsoft.SharePoint.PowerShell' were found")) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } } Write-Host "Finished Adding PowerShell Snap-in" -ForegroundColor Green Add-Content "$ProgressFile" "Finished AddPowerShellSnapin Method" $Progress = "0:Success" } ############# end of Method ############### ############# Load the configuration XML ############### function LoadConfigXML() { $Progress = "0:Entered" Write-Host "Entered into LoadConfigXML Method" -ForegroundColor Yellow Add-Content "$ProgressFile" "Entered into LoadConfigXML Method" $ConfigXmlPath = $scriptBase + "Configuration.xml" [Xml]$Config = Get-Content $ConfigXmlPath Write-Host "Finished LoadConfigXML Method" -ForegroundColor Green Add-Content "$ProgressFile" "Finished LoadConfigXML Method" return $Config $Progress = "0:Success" } ############# End of Method ###############
Then from the main file, I just used the below lines.
TRY { # Create the Progress Variable $Progress = "0" # Load the Methods ."$scriptBaseLoadMethods.ps1" # Clear the Last Execution cls # Add the PowerShell Snappin AddPowerShellSnapin # Load the Configuration File $Config = LoadConfigXML } CATCH { ###Catch the exception and do the rest of the things. }
Happy Coding,
Sathish Nadarajan.
Leave a comment