I use the following code to reference files in the current script directory
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
Then I can call it like
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)
}
This works fine. However, if I want to reference a file in a subdirectory like 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)
}
it fails with error code 1639. If this doesn't work, how can I reference subdirectories when using $PSScriptRoot?