【问题标题】:Getting node version via batch script通过批处理脚本获取节点版本
【发布时间】:2020-03-20 14:30:13
【问题描述】:

我正在学习 nodeJS 和批处理脚本,我想使用批处理脚本获取节点版本。

当前代码是这样的:

FOR /F "tokens=* USEBACKQ" %%F IN (`node --version`) DO (
SET NODE_VER=%%F
)
ECHO %NODE_VER%
pause

但我不明白为什么这不起作用。它只是在调用命令node --version 后冻结。我也尝试调用node -v,但行为相同。当用python --version 替换node --version 时,这个确切的命令有效。救命!

【问题讨论】:

    标签: node.js batch-file cmd scripting


    【解决方案1】:

    cmd 命令总是先读取本地目录寻找匹配的命令,然后它会去环境%path% 搜索命令。在这种情况下,Node 存在于%path% 变量中,但您在本地目录中也有一个node.??? 文件,因此将被使用。因此,以下措施很重要:

    切勿将批处理文件命名为与可执行文件相同的名称。即使用my_node_script.cmd 始终尝试在批处理文件 node.exe --version 中使用完整的可执行文件名称,如果可能,如果您在工作目录中需要重复名称,例如 node,请使用可执行文件的完整路径。比如:

    "C:\Program Files\nodejs\node.exe" --version
    

    "%ProgramFiles%\nodejs\node.exe" --version
    

    【讨论】:

      【解决方案2】:

      试试这个:

      @ECHO OFF
      FOR /F %%F IN ('node.exe --version') DO ECHO %%F
      PAUSE
      GOTO :EOF
      

      【讨论】:

        猜你喜欢
        • 2021-09-09
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2016-12-23
        • 2018-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多