【发布时间】:2012-09-30 04:39:30
【问题描述】:
我有以下函数,它接受文件名并在本地或使用环境路径解析它。我正在寻找与命令行相同的功能:
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
}
我的问题:
- 是否有执行此操作的内置函数?
- 还是社区脚本更好?
- 上面的函数是否遗漏了什么?
【问题讨论】:
-
你想要这个用于 exe 文件还是任何文件?
-
我希望它适用于所有文件,但如果有一种简单的方法可以适用于可执行文件(和 bat/ps1 文件),请也发布它。但是请注意,PS 提示符允许您从 PATH 打开任何文件类型。唯一的问题是它不会自动完成非可执行文件。
-
Get-Command 将为路径中的 exe 执行此操作。
-
@acv55 关于此评论“PS 提示符允许您从 PATH 打开任何文件类型” - 我认为这不是真的。它只会找到那些扩展名在 $env:PATHEXT 中的文件。
标签: powershell path environment-variables