【发布时间】:2017-09-13 19:10:51
【问题描述】:
如果我放入 bat-file 命令启动 node
wmic process call create "npm run go","%~dp0."
一切正常:
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
wmic process call create "npm run go","%~dp0."
出现错误9,according to msdn msdn表示找不到路径:
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:
{
"name": "wmic-npm-test",
"version": "0.0.0",
"scripts": {
"go": "node go"
}
}
文件go.js:
setInterval(function () {
console.log(require('process').cwd());
}, 1000);
如果只是从控制台启动npm,一切正常:
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 to get process id 启动它。
【问题讨论】:
-
这是因为 npm 是一个 cmd 文件但不可执行,并且可能 wmic 不使用文件关联。由于 npm 在 %path% 中,这很容易解决。
标签: windows batch-file npm wmic