如何查找系统路径中是否有某个文件可用?

时间:2013-05-22 08:17:00

标签: powershell

我的Powershell脚本必须从VS命令提示符运行,我想通过检查msbuild.exe是否在路径中来验证它。我设法使用where.exe:

where.exe msbuild.exe > $null
if ($LASTEXITCODE -ne 0)
{
    throw "BuildAll must be run from ""Developer Command Prompt for VS2012"" shortcut."
}

然而,这并不像“Powershell方式” - 是否有Powershell本地方式来做到这一点?

1 个答案:

答案 0 :(得分:1)

如果msbuild.exe必须与脚本

位于同一文件夹中,请尝试此操作
   if ( TEST-PATH (JOIN-PATH (Split-Path -parent $MyInvocation.MyCommand.Definition) "msbuild.exe " ))
{
  ...
}
else
{
  ...
}

如果你想检查build.exe是否可用作命令(来自$ env:path的任何可用路径),你可以这样做:

if ([bool](Get-Command "msbuild.exe" -ea silentlycontinue)) 
{ 
  ...
}