首页 > 解决方案 > 通过批处理脚本获取节点版本

问题描述

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

当前代码是这样的:

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

但我不明白为什么这不起作用。它只是在调用 command 后冻结node --version。我也试过打电话node -v但同样的行为。这个确切的命令在替换node --versionpython --version. 帮助!

标签: node.jsbatch-filecmdscripting

解决方案


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

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

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

或者

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

推荐阅读