我正在学习nodeJS和批处理脚本,我希望使用批处理脚本获得节点版本。
目前的代码是:
FOR /F "tokens=* USEBACKQ" %%F IN (`node --version`) DO (
SET NODE_VER=%%F
)
ECHO %NODE_VER%
pause但我不明白为什么这不管用。在调用命令node --version之后,它就会冻结。我也试着打电话给node -v,但是行为是一样的。这个精确的命令在用node --version替换python --version时起作用。帮助!
发布于 2019-11-27 06:10:37
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发布于 2019-11-25 16:44:50
试试这个:
@ECHO OFF
FOR /F %%F IN ('node.exe --version') DO ECHO %%F
PAUSE
GOTO :EOFhttps://stackoverflow.com/questions/59029452
复制相似问题