There are a lot of great path-related functions and methods available to the [System.IO.Path]
class.
Here is an example for writing a small function that changes the value of $env:PSModulePath
.
function Set-PSModulePath {
<#
.Synopsis
Set-PSModulePath [path]
.Description
Adjust the PSModulePath env variable to your liking
.Notes
Add integration with other modules so they can add their own dir
to the psmodulepath!
#>
param(
[parameter(Mandatory = $false)]
[string]
$Path
)
# Cross-platform path-separator value
# On Windows it is `;`, on Unix-like systems it is `:`
$sep = [System.IO.Path]::PathSeparator
if ($Path) {
Write-Host -ForegroundColor Yellow "Adjusting PSModulePath
Adding $Path to `$env:PSModulePath"
Write-Verbose "Setting old path to `$oldPSModulePath"
$oldPSModulePath = $env:PSModulePath
$env:PSModulePath = "${Path}${sep}$env:PSModulePath"
Write-Host -fore Yellow "`$env:PSModulePath is now $env:PSModulePath"
}
else {
Write-Error "You did not write a Path"
}
}
Top comments (0)