Skip to content

[BUG] .cmd @echo off #68

@cshorler

Description

@cshorler

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

this is similar to what is raised here (never resolved):
npm/npm#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

  1. Start cmd prompt
  2. Run npm -v at the prompt
  3. appears to hang, echo on fixes

Environment

  • npm: 8.12.2
  • Node: v16.14.2
  • OS: Windows
  • platform: Microsoft Windows [Version 10.0.19044.1645]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions