我具有以下函数,该函数采用文件名并在本地或使用环境路径解析它。我正在寻找与您在命令行上获得的功能相同的功能:
function Resolve-AnyPath ($file)
{
if ($result = Resolve-Path $file -ErrorAction SilentlyContinue)
{
return $result;
}
return ($env:PATH -split ';') |
foreach {
$testPath = Join-Path $_ $file
Resolve-Path $testPath -ErrorAction SilentlyContinue
} |
select -first 1
}
我的问题:
最佳答案
想不到任何内置函数可以执行此操作。我会使用Test-Path
摆脱那些SilentlyContinue
:
function Resolve-Anypath
{
param ($file)
(".;" + $env:PATH).Split(";") | ForEach-Object {
$testPath = Join-Path $_ $file
if (Test-Path $testPath) {
Write-Output ($testPath)
break
}
}
}