Ich verwende den folgenden Code-Dateien im aktuellen Skriptverzeichnis zu referenzierenPowershell Referenzierung aktuellen Verzeichnis und Unterordner
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
Dann kann ich es nennen wie
try {
WriteLog("Installing...")
$installresult = (Start-Process msiexec.exe -ArgumentList "/i
$PSScriptRoot\InstallPrism6.msi /qn /norestart" -Wait -PassThru).ExitCode
WriteLog("Installation finished with return code: $installresult")
}
catch {
WriteLog($_.Exception.Message)
}
Dies funktioniert gut. Allerdings, wenn ich wie eine Datei in einem Unterverzeichnis verweisen möge so
try {
WriteLog("Installing...")
$installresult = (Start-Process msiexec.exe -ArgumentList "/i $PSScriptRoot
+ \test\InstallPrism6.msi /qn /norestart" -Wait -PassThru).ExitCode
WriteLog("Installation finished with return code: $installresult")
}
catch {
WriteLog($_.Exception.Message)
}
es nicht mit dem Fehlercode 1639 Wenn dies nicht funktioniert, wie kann ich Verzeichnisse verweisen, wenn $ PSScriptRoot verwenden?
Wir rufen PowerShell-Funktionen nicht mit Klammern auf - Sie sollten sagen "WriteLog" Installing ... "' ohne '()'. –