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.bat
noemen door dit te doen:
& "$($VCVARSALLBAT)" x86_amd64
Van de uitvoer die ik zie, is het uitgevoerd. Nadat ik vcvarsall.bat
heb 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 nmake
zonder fouten aanroepen:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
nmake
Antwoord 1, autoriteit 100%
Als nmake
een programma is, probeer dan nmake.exe
. nmake.exe
moet 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 nmake
aan te roepen vanaf een Powershell- of CMD-prompt.
TOEGEVOEGD AAN ANTWOORD
Dit is wat where.exe
doet…
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.exe
het 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.