我有一个PowerShell脚本来部署一些数据库代码。这是一个SSDT项目,其结构如下:
Root
\Deployment
\Scripts
Deploy.ps1
\Config
deploy.config
\SolutionRoot
\DatabaseProject
\UnitTestProject
要在工作站上进行测试部署,我将更改为
\Deployment\Scripts
Deploy.ps1
而且效果很好。当我从Jenkins构建服务器运行它时,当前工作目录是根文件夹(而不是脚本)。所以
Deploy.ps1
脚本在调用时无法运行,如:
powershell -File Deployment\Scripts\Deploy.ps1
$currentDirectory = (Get-Item -Path ".\" -Verbose).FullName
Write-Host "Current Working Directory: $currentDirectory"
在我的工作站上运行时,它返回:
Current Working Directory: C:\repos\MyRoot\Deployment\Scripts
在生成服务器上运行时,它返回
Current Working Directory: D:\Jenkins\workspace\MyRootWithADifferentName
我希望脚本无论在哪里都能运行,那么知道我所在目录结构中的位置的最佳方法是什么?构建服务器可能会有所不同,根目录的名称也可能有所不同,但所有其他服务器相对于根目录都是静态的。