20 lines
1.2 KiB
Batchfile
20 lines
1.2 KiB
Batchfile
@echo off
|
|
setlocal
|
|
powershell.exe -NoProfile -Command "$ErrorActionPreference='Stop'; $nodeDir=Join-Path $env:APPDATA 'fnm\aliases\default'; $npmDir=Join-Path $env:APPDATA 'npm'; if (!(Test-Path (Join-Path $nodeDir 'node.exe'))) { throw ('Node not found: '+$nodeDir) }; $original=[Environment]::GetEnvironmentVariable('Path','User'); $entries=@($original -split ';' | Where-Object { $_ }); foreach ($directory in @($nodeDir,$npmDir)) { if (!($entries | Where-Object { $_.TrimEnd('\') -ieq $directory })) { $entries += $directory } }; $updated=$entries -join ';'; if ($updated -cne $original) { [Environment]::SetEnvironmentVariable('Path',$updated,'User') }; if ([Environment]::GetEnvironmentVariable('Path','User') -cne $updated) { throw 'User PATH verification failed' }; Write-Host 'User PATH updated. Existing entries preserved.'"
|
|
if errorlevel 1 goto failed
|
|
set "PATH=%APPDATA%\fnm\aliases\default;%APPDATA%\npm;%PATH%"
|
|
where node
|
|
node --version
|
|
if errorlevel 1 goto failed
|
|
call npm.cmd --version
|
|
if errorlevel 1 goto failed
|
|
echo.
|
|
echo Node and npm are ready. Close and reopen your terminal application.
|
|
pause
|
|
exit /b 0
|
|
:failed
|
|
echo.
|
|
echo Environment repair failed. See the error above.
|
|
pause
|
|
exit /b 1
|