首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vscode终端bat文件,并使代码在vscode终端内运行,而不是弹出终端

vscode终端bat文件,并使代码在vscode终端内运行,而不是弹出终端
EN

Stack Overflow用户
提问于 2021-03-12 01:35:53
回答 1查看 90关注 0票数 1

我正在尝试创建一个.bat来启动一个节点应用程序--我想从vscode的终端运行这个.bat,我想让它在那个上下文中执行……

我一直面临的真正挑战是如何在vs代码环境中打开另一个终端,而不是喜欢弹出的cmd。

我过去用来启动开发服务器的方法是:

代码语言:javascript
复制
ctrl+shift+5
cd server
npm run dev
click over to the other window
cd client
npm run dev

我的最终目标是

代码语言:javascript
复制
start run.bat

我的run.bat

代码语言:javascript
复制
@ECHO OFF
:_start
ECHO select an environment:
ECHO 1. dev
ECHO 2. Production
ECHO choose by number :
set choice=
set /p choice=">> "
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto _development
if '%choice%'=='2' goto _production
ECHO BAD CHOICE TRY AGAIN
ECHO.
goto _start

:_development
CALL dev.bat /b @dev.bat /k
goto _end
:_production
CALL prod.bat /b @prod.bat /k
goto _end

:_end
pause

dev.bat

代码语言:javascript
复制
@ECHO OFF
ECHO starting development
CD startup scripts
START startDevClient.bat @startDevClient.bat /k /b
CALL startDevServer.bat @startDevServer.bat /k

startDevClient

代码语言:javascript
复制
@ECHO OFF
ECHO opening client
CD ..
CD client
NPM run dev
PAUSE

startDevServer

代码语言:javascript
复制
@ECHO OFF
ECHO opening server
CD ..
CD server
NPM run dev
PAUSE

问题是:

start run.bat会打开一个新的cmd窗口,并且不会在vscode环境中执行。

dev.bat中的start调用一个命令窗口,但我不知道如何指定,我想让它像在vscode中点击ctrl+shift+5一样打开。

我想做的事情是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 03:16:16

我找到了一种方法来做我想做的,或者足够接近。

通过使用vscode的任务,我可以创建一个运行两个子任务的主任务,并指定它们将如何在终端中打开。

代码语言:javascript
复制
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "spin up dev server",
            "type": "shell",
            "command": "npm run dev",
            "options":{
                "cwd":"${workspaceFolder}/server"
            },
            "presentation": {
                "reveal": "always",
                "panel": "dedicated",
                "group":"DEVELOPMENT"
              }
        },
        {
            "label": "spin up dev client",
            "type": "shell",
            "command": "npm run dev",
            "options":{
                "cwd":"${workspaceFolder}/client"
            },
            "presentation": {
                "reveal": "always",
                "panel": "dedicated",
                "group":"DEVELOPMENT"
              }
        },
        {
            "label": "spin up prod server",
            "type": "shell",
            "command": "npm run prod",
            "options":{
                "cwd":"${workspaceFolder}/server"
            },
            "presentation": {
                "reveal": "always",
                "panel": "dedicated",
                "group":"PRODUCTION"
              }
        },
        {
            "label": "spin up prod client",
            "type": "shell",
            "command": "npm run prod",
            "options":{
                "cwd":"${workspaceFolder}/client"
            },
            "presentation": {
                "reveal": "always",
                "panel": "dedicated",
                "group":"PRODUCTION"
              }
        },
        {
            "label": "DEVELOPMENT ENVIRONMENT",
            "dependsOn": ["spin up dev client", "spin up dev server"]
          },
          {
            "label": "PRODUCTION ENVIRONMENT",
            "dependsOn": ["spin up prod client", "spin up prod server"]
          }
    ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66587644

复制
相关文章

相似问题

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