2

私の 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 ネイティブの方法はありますか?

4

1 に答える 1

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)) 
{ 
  ...
}
于 2013-05-22T08:35:26.000 に答える