cmd-shim
cmd-shim copied to clipboard
[BUG] .cmd @echo off
Is there an existing issue for this?
- [X] I have searched the existing issues
Current Behavior
this is similar to what is raised here (never resolved): https://github.com/npm/npm/issues/19681
At a Windows command prompt running npm -v with npm@latest seems to hang.
Typing echo on brings back the prompt as described in the above bug.
This seems to contradict Microsoft documentation for @echo off, that remarks (to quote) "If used in a batch file, echo on and echo off don't affect the setting at the command prompt."
I see this behaviour on Windows 10.
If I patch the npm.cmd file like this, it behaves well:
@SETLOCAL
@FOR /f "tokens=1,2,3 delims=. " %%G IN ('ECHO') DO @SET _echo=%%I
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
ENDLOCAL & (CALL) || TITLE %COMSPEC% & "%_prog%" "%dp0%\node_modules\npm\bin\npm-cli.js" %* & ECHO %_echo%
Expected Behavior
normal exit, no change to current prompt setting.
Steps To Reproduce
- Start cmd prompt
- Run
npm -vat the prompt - appears to hang,
echo onfixes
Environment
- npm: 8.12.2
- Node: v16.14.2
- OS: Windows
- platform: Microsoft Windows [Version 10.0.19044.1645]