Esta vez toca un truco muy simple pero muy útil cuando tengo un script que recibe una ruta como parámetro. Es muy típico no saber si la ruta es absoluta o relativa y muy frecuente querer hacer un Join-Path con la ruta actual (o cualquier otra) en caso de que la ruta sea relativa.
En ocasiones me olvido de que PowerShell tiene a su disposición toda la potencia de .Net y en este caso es precisamente útil. Utilizando el método IsPathRooted de System.IO.Path puedo saber si la ruta es absoluta o relativa y actuar en consecuencia. Este sería un ejemplo típico de estos casos.
param([string]$Path)
$targetPath = pwd
if (-not [string]::IsNullOrWhiteSpace($Path)) {
if ([System.IO.Path]::IsPathRooted($Path)) {
$targetPath = $Path
} else{
$targetPath = Join-Path (pwd) $Path
}
}
De regalo este script trae otro ejemplo en el que recurrir a .Net es muy útil, el método IsNullOrWhiteSpace**()**