[PowerShell] Distinguir entre rutas relativas y absolutas

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**()**

Modesto San Juan

Desarrollo software e intento hacerlo bien