De term ‘nmake’ wordt niet herkend

Ik doe iets verkeerd, maar ik weet niet wat. Ik heb een PowerShell-script, waar ik een variabele als deze heb:

$VCVARSALLBAT = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"

In dit script wil ik dit vcvarsall.batnoemen door dit te doen:

& "$($VCVARSALLBAT)" x86_amd64

Van de uitvoer die ik zie, is het uitgevoerd. Nadat ik vcvarsall.batheb gebeld, bel ik nmake.

D.w.z. mijn script ziet er als volgt uit:

$VCVARSALLBAT = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
& "$($VCVARSALLBAT)" x86_amd64
nmake

Ik krijg deze foutmelding:

nmake : De term 'nmake' wordt niet herkend als de naam van een cmdlet, functie,
scriptbestand of een bruikbaar programma. Controleer de spelling van de naam, of als een pad
is opgenomen, controleert u of het pad correct is en probeert u het opnieuw.
Op ...:214 char:1
+ nmake
+ ~~~~~
  + CategoryInfo: ObjectNotFound: (nmake:String) [], ParentContainsErrorRecordException
  + FullyQualifiedErrorId: CommandNotFoundException

Het vreemde is dit: als ik naar de normale opdrachtregel van Windows ga en de volgende instructies aanroep, kan ik nmakezonder fouten aanroepen:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
nmake

Antwoord 1, autoriteit 100%

Als nmakeeen programma is, probeer dan nmake.exe. nmake.exemoet op uw pad zijn om dit te laten werken. Als dit niet het geval is, kunt u (a) het volledige pad naar het uitvoerbare bestand specificeren (b) of het uitvoerbare bestand aan uw pad toevoegen. U kunt zien of het uitvoerbare bestand zich in uw pad bevindt door where.exe nmakeaan te roepen vanaf een Powershell- of CMD-prompt.

TOEGEVOEGD AAN ANTWOORD

Dit is wat where.exedoet…

Als je iets vindt in CMD maar niet in Powershell, controleer ik of je paden overeenkomen:

Als het opgegeven programma op uw pad staat, zal where.exehet vinden, zelfs in Powershell.

In het oorspronkelijke bericht kreeg je de standaard: “Ik kan je commando niet vinden.” uitzondering van Powershell:

Als je echt wilt testen of je de exe vanuit Powershell kunt aanroepen, roep het dan expliciet aan:

'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86\nmake.exe'

Als dat werkt en je wilt het bij de programmanaam noemen, controleer dan nogmaals je pad.

Other episodes