【发布时间】:2012-09-08 14:01:56
【问题描述】:
我正在创建一个批处理文件以在 Windows XP 机器上静默安装 nodejs。
我正在尝试自动安装节点模块依赖项 (npm install)。
我通常会从目标安装目录中的 cmd 提示符发出 npm install。
我正在努力从批处理文件中自动与命令提示符交互。
我的批处理脚本中的以下行似乎使我可以将命令的文本文件通过管道传输到 cmd:
for /F "usebackq delims=," %%i in ("c:\foo\source\npm_install.txt") do echo %%i | "c:\windows\system32\cmd.exe"
批处理文件位于 c:\foo\source。我需要从 c:\foo\bin 发出“npm install”。
如果我的 npm_install.txt 文件是这样的:
cd /d c:\foo\bin,
npm install
cmd 提示符将执行第一个命令,将目录从 c:\ 更改为 c:\foo\bin。
然后它将执行第二个命令,但再次从 c:\ 开始。先前更改目录的命令不会持续存在。似乎文本文件中的每个命令都将从 c:\ 发出。
接下来我尝试从一个组合语句发出这两个命令:
cd /d c:\foo\bin && npm install
似乎这种方法可以让我克服之前的路径问题,但是我遇到了 npm 和 install 之间的空间问题。
cmd 提示符执行 c:\foo\bin>npm 并导致 npm 在空间上跳闸。
我尝试将命令括起来但没有成功:'npm install'、“npm install”、(npm install)。
谁能告诉我我做错了什么?
谢谢。
【问题讨论】:
标签: node.js batch-file windows-xp cmd