首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能通过wmic启动npm

不能通过wmic启动npm
EN

Stack Overflow用户
提问于 2017-09-13 10:19:21
回答 2查看 57关注 0票数 1

如果我在bat-file命令中放置启动node

代码语言:javascript
复制
wmic process call create "npm run go","%~dp0."

一切都很好:

代码语言:javascript
复制
D:\Temp\Supertemp\wmic npm>wmic process call create "node go","D:\Temp\Supertemp\wmic npm\."
Идет выполнение (Win32_Process)->Create()
Метод успешно вызван.
Параметры вывода:
instance of __PARAMETERS
{
        ProcessId = 13292;
        ReturnValue = 0;
};

但是如果我用npm代替

代码语言:javascript
复制
wmic process call create "npm run go","%~dp0."

发生错误9,根据msdn表示找不到路径:

代码语言:javascript
复制
D:\Temp\Supertemp\wmic npm>wmic process call create "npm run go","D:\Temp\Supertemp\wmic npm\."
Идет выполнение (Win32_Process)->Create()
Метод успешно вызван.
Параметры вывода:
instance of __PARAMETERS
{
        ReturnValue = 9;
};

文件package.json

代码语言:javascript
复制
{
  "name": "wmic-npm-test",
  "version": "0.0.0",
  "scripts": {
    "go": "node go"
  }
}

文件go.js

代码语言:javascript
复制
setInterval(function () {
  console.log(require('process').cwd());
}, 1000);

如果简单地从控制台启动npm,那么一切都能正常工作:

代码语言:javascript
复制
D:\Temp\Supertemp\wmic npm>npm run go

> wmic-npm-test@0.0.0 go D:\Temp\Supertemp\wmic npm
> node go

D:\Temp\Supertemp\wmic npm
D:\Temp\Supertemp\wmic npm

我是通过wmic 获取进程标识开始的。

PS:俄语中同样的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-13 11:10:51

有文件npm.cmdnpm文件用于sh

代码语言:javascript
复制
D:\Temp\Supertemp\wmic npm>where npm
C:\Program Files\nodejs\npm
C:\Program Files\nodejs\npm.cmd

要执行npm命令,需要指定要运行cmd-file:

代码语言:javascript
复制
wmic process call create "npm.cmd run go","%~dp0."
票数 1
EN

Stack Overflow用户

发布于 2017-09-13 10:57:56

试着这样做(在我对问题的评论中的模式细节):

代码语言:javascript
复制
@echo off

for %%a in (npm.cmd) do set "npm_path=%%~f$PATH:a"
echo %npm_path%

wmic process call create "cmd.exe /c call \"%npm_path%\" ","%~dp0."
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46194909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档