Мне определили местоположение сценария PowerShell в D:\temp
.
Когда я запускаю этот скрипт, я хочу, чтобы текущее местоположение файла было перечислено. Как я делаю это?
Например, этот код выполнил бы его в пакетном файле DOS; я пытаюсь преобразовать это в сценарий PowerShell...
FOR /f "usebackq tokens=*" %%a IN ('%0') DO SET this_cmds_dir=%%~dpa
CD /d "%this_cmds_dir%"
Если это имеет значение я нашел, что это работает на меня на PowerShell V5 в сценариях и в PowerShell ISE:
try {
$scriptPath = $PSScriptRoot
if (!$scriptPath)
{
if ($psISE)
{
$scriptPath = Split-Path -Parent -Path $psISE.CurrentFile.FullPath
} else {
Write-Host -ForegroundColor Red "Cannot resolve script file's path"
exit 1
}
}
} catch {
Write-Host -ForegroundColor Red "Caught Exception: $($Error[0].Exception.Message)"
exit 2
}
Write-Host "Path: $scriptPath"
HTH
P.S. Включенная полная обработка ошибок. Корректируйтесь к своим потребностям, соответственно.