2017-05-20 1 views
0

Was ist der Best Practice-Ansatz, um Pfade zu Skripten/Ordnern auf PowerShell zu behandeln?Wie mit Pfaden auf PowerShell umgehen?

Beispiel 1 (bezogen auf den Zielskript Standort):

$SettingsModule = (Get-Item -Path ('{0}\..\Settings\SettingsReader.psm1' -f $PSScriptRoot)).FullName 
$AzureSqlUtilsModule = (Get-Item -Path ('{0}\UtilsSqlAzure.psm1' -f $PSScriptRoot)).FullName 

# code here ... 

Beispiel 2 (Pfad wird über den Parameter informiert):

$PfxPath = (Join-Path -Path $SecureRepoRoot -ChildPath $appCredentials.PfxPath) 
# code here ... 

Oder sollte die gemeinsamen Wege zu meinem lokalen Ordner/Repositories/Skripte handhaben mit environment variables? Oder gibt es eine bessere Alternative?

Ich habe einen Linux-Hintergrund, und idealerweise würde ich Umgebungsvariablen verwenden, um einen gemeinsamen Pfad zu definieren, aber ich bin mir nicht sicher, ob dies der beste Ansatz auf Windows/PowerShell ist.

+0

Hängt davon ab, was Sie tun. Ich würde für relative Pfade als Powershells Modularität gehen. Wenn Sie ein Modul verschieben oder aktualisieren, geben Sie alle relevanten Ressourcen an. Ich mag externe Abhängigkeiten nicht so sehr, also bleibe ich bei diesem Ansatz. Env ist möglicherweise nicht vorhanden oder variiert auf Systemen - der Pfad Ihres Moduls oder Skripts ist immer klar. – restless1987

+0

Guter Punkt @ restless1987. Wenn du es als Antwort machst, würde ich es gerne annehmen. –

Antwort

1

Hängt davon ab, was Sie tun. Ich würde für relative Pfade als Powershells Modularität gehen. Wenn Sie ein Modul verschieben oder aktualisieren, geben Sie alle relevanten Ressourcen an. Ich mag externe Abhängigkeiten nicht so sehr, also bleibe ich bei diesem Ansatz. Env ist möglicherweise nicht vorhanden oder variiert auf Systemen - der Pfad Ihres Moduls oder Skripts ist immer klar.