node.js - 通过批处理脚本获取节点版本
问题描述
我正在学习 nodeJS 和批处理脚本,我想使用批处理脚本获取节点版本。
当前代码是这样的:
FOR /F "tokens=* USEBACKQ" %%F IN (`node --version`) DO (
SET NODE_VER=%%F
)
ECHO %NODE_VER%
pause
但我不明白为什么这不起作用。它只是在调用 command 后冻结node --version
。我也试过打电话node -v
但同样的行为。这个确切的命令在替换node --version
为python --version
. 帮助!
解决方案
cmd
commands 总是会首先读取本地目录以查找匹配的命令,然后它会转到环境%path%
中搜索该命令。在这种情况下,Node
存在于%path%
变量内部,但您node.???
在本地目录中也有一个文件,因此将被使用。因此,以下措施很重要:
切勿将批处理文件命名为与可执行文件相同的名称。即使用my_node_script.cmd
始终尝试在批处理文件中使用完整的可执行文件名称node.exe --version
,如果可能的话,如果您需要node
在工作目录中使用重复名称,请使用可执行文件的完整路径。就像是:
"C:\Program Files\nodejs\node.exe" --version
或者
"%ProgramFiles%\nodejs\node.exe" --version
推荐阅读
- asp.net - Entity Framework Core 2.2.1 DbQuery 错误 system.Data.SqlTypes.SqlNullValueException
- spring-boot - spring boot 和 swagger2 的 Https 设置
- javascript - 动态地将存根传递给反应组件
- python - Groupby 列保持多行的最小值
- azure - Az 登录命令在 Kudu 电源外壳上不起作用
- reactjs - 在反应中从另一个减速器修改状态
- linux - 无法检测到 USB 摄像头
- xpath - 如何处理没有文本的节点?
- html - 单选按钮。复选框在物化 css 中的表格内不可见
- regex - 如何使用 htaccess 为特定域重定向目录?