[英]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.