How to Load PS1 Files with in the Main File – PowerShell

Sathish Nadarajan
 
Solution Architect
May 14, 2016
 
Rate this article
 
Views
4689

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.

Category : PowerShell

Author Info

Sathish Nadarajan
 
Solution Architect
 
Rate this article
 
Sathish is a Microsoft MVP for SharePoint (Office Servers and Services) having 15+ years of experience in Microsoft Technologies. He holds a Masters Degree in Computer Aided Design and Business ...read more
 

Leave a comment