Jak w PowerShellu zbudować ścieżkę do pliku ze zmiennych

Przy budowaniu ścieżki do pliku lub katalogu ze zmiennych trzeba się na baczności. Pusta pusta zmienna bądź przypadkowy odstęp potrafią narobić sporo zamieszania, szczególnie gdy w grę wchodzi kasowanie danych.

Bardzo ważne jest upewnienie się, że zmienne użyte do konstrukcji ścieżki nie są puste. Niezależnie od systemu operacyjnego i zastosowanego języka.

PowerShell rozwiązuje większość tych problemów poleceniem Join-Path które, między innymi, przyjmuje parametry Path oraz ChildPath. Co prawda są one opcjonalne, ale ich użycie przyczyni się do lepszej przejrzystości skryptu.

Budowanie ścieżki z dwóch zmiennych (lub zmiennej i ciągu znaków) sprowadza się do przekazania ich we wspomnianych parametrach wyżej parametrach.

$dysk = 'd:'
$plik = 'waznyPlik.txt'
 
$pelnaSciezka = Join-Path -Path $dysk -ChildPath $plik # Wynik d:\waznyplik.txt

Sytuacja odrobinę komplikuje się gdy zmiennych (lub stringów) jest więcej, ale wystarczy wtedy skorzystać z możliwości przekazania wyniku jednego wywołania Join-Path do kolejnego.

$dysk = 'd:'
$katalog = 'dane'
$plik = 'waznyplik.txt'
 
$pelnaSciezka = Join-Path -Path $dysk -ChildPath $katalog | Join-Path -ChildPath $plik # Wynik: d:\dane\waznyplik.txt