繁体   English   中英

如何创建用于启动本地 Node 应用程序的 Windows 10 批处理文件?

[英]How to create a Windows 10 batch file for launching local Node app?

我正在尝试制作一个 .bat 文件以在本地运行两个单独的应用程序,一个 React 应用程序和它所依赖的 Strapi 服务。 我的操作系统是 Windows 10。

到目前为止,我想出了这个:

echo Start React started
C:\Windows\System32\cmd.exe /k "C:\Program Files\nodejs\nodevars.bat"
cd "C:\Websites\React\react-template-app"
call npm start

它会启动 Node JS 命令提示符(第 2 行)并更改目录。 但它不会运行npm start命令。 我尝试了几种语法变体。
当我在脚本打开的命令行中键入npm start时,它运行良好。

批处理文件由 Windows 命令处理器cmd.exe处理。 第二个命令行再启动一个cmd.exe来处理批处理文件nodevars.bat ,它在第二个命令进程的上下文(内存)中定义了多个环境变量。 因此,由第一个启动的cmd.exe处理的批处理文件npm.cmd不能使用在第二个命令进程的环境中定义的环境变量。 另请参阅关于“X”未被识别为内部或外部命令、可运行程序或批处理文件的原因是什么的长答案?

我建议不要为此任务使用批处理文件,而是使用文件扩展名为.lnk的快捷方式文件。

默认情况下,在 Windows开始菜单中有一个打开命令提示符(英文 Windows 上的文件名)的快捷方式。 使用辅助(右)定位设备(鼠标)按钮单击此快捷方式文件并复制它。 然后将快捷方式文件粘贴到桌面上或“开始”菜单的文件夹中。 接下来使用辅助定位设备按钮单击粘贴的快捷方式文件,然后使用重命名更改文件名,例如,改为Start NPM

使用辅助定位设备按钮再次单击用于启动NPM的快捷方式文件,然后在打开的上下文菜单中单击最后一个菜单项Properties

打开了一个带有多个选项卡的对话框 window。 显示的选项卡已经包含属性目标,其中包含具有完整路径的cmd.exe Append cmd.exe后一个空格和下面的arguments:

/K "%ProgramFiles%\nodejs\nodevars.bat" & npm.cmd start

接下来是属性Start,其中定义了由 Windows Explorer 启动并使用属性Target定义的可执行文件的当前工作目录。 将此属性修改为:

C:\Websites\React\react-template-app

还有属性Shortcut 通过单击进入编辑字段并按下组合键,如Ctrl + Alt + N ,此组合键可以在任何 window 当前具有输入焦点的情况下随时按下,让 Windows Explorer 执行目标以使用配置的属性启动NPM

可以有更多的属性配置为任何喜欢的图标,控制台的字体和字体大小 window,背景和文本 colors,行数和列数(窗口高度和宽度)等。

最后单击“确定”按钮,启动NPM的快捷方式文件就可以使用了。 快捷方式文件可以固定在Windows任务栏,但是有了为这个快捷方式文件定义的快捷键组合,快捷方式文件存储在哪个文件夹中执行并不重要。

我认为在nodevars所需的环境中设置变量的npm正在新的 window 的上下文中设置,因此npm在那里运行并设置了变量。 变量未在主批次的上下文中设置,因此在那里失败。

尝试简单地call "C:\Program Files\nodejs\nodevars.bat"或者...cmd.exe...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM