如何处理PowerShell上的路径?

如何处理PowerShell上的路径?,powershell,Powershell,在PowerShell上处理脚本/文件夹路径的最佳做法是什么 示例1相对于目标脚本位置: $SettingsModule = (Get-Item -Path ('{0}\..\Settings\SettingsReader.psm1' -f $PSScriptRoot)).FullName $AzureSqlUtilsModule = (Get-Item -Path ('{0}\UtilsSqlAzure.psm1' -f $PSScriptRoot)).FullName # code her

在PowerShell上处理脚本/文件夹路径的最佳做法是什么

示例1相对于目标脚本位置:

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

# code here ...
示例2通过参数通知路径:

$PfxPath = (Join-Path -Path $SecureRepoRoot -ChildPath $appCredentials.PfxPath)
# code here ...
或者应该使用环境变量处理本地文件夹/存储库/脚本的公共路径?还是有更好的选择


我有Linux背景,理想情况下我会使用环境变量来定义公共路径,但是我不确定这是否是Windows/PowerShell上的最佳方法。

取决于您正在做什么。我会选择PowerShell模块化的相对路径。当您移动或更新模块时,您将为其提供所有相关资源。我不太喜欢外部依赖,所以我坚持这种方法。Env可能不存在或因系统而异-模块或脚本的路径始终清晰。

取决于您正在执行的操作。我会选择PowerShell模块化的相对路径。当您移动或更新模块时,您将为其提供所有相关资源。我不太喜欢外部依赖,所以我坚持这种方法。Env可能不存在或在系统上有所不同-模块或脚本的路径总是清晰的。这一点很好。如果你能回答这个问题,我很乐意接受。