【问题标题】:vscode terminal bat files and having code run inside vscode terminal instead of popup terminalvscode 终端 bat 文件并在 vscode 终端而不是弹出终端中运行代码
【发布时间】:2021-06-09 17:56:32
【问题描述】:

我正在尝试制作一个 .bat 来启动一个节点应用程序 - 我想从 vscode 的终端运行这个 .bat 并希望它在该上下文中执行...

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

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

ctrl+shift+5
cd server
npm run dev
click over to the other window
cd client
npm run dev

我的最终目标是

start run.bat

我的 run.bat

@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

@ECHO OFF
ECHO starting development
CD startup scripts
START startDevClient.bat @startDevClient.bat /k /b
CALL startDevServer.bat @startDevServer.bat /k

启动开发客户端


@ECHO OFF
ECHO opening client
CD ..
CD client
NPM run dev
PAUSE

启动开发服务器

@ECHO OFF
ECHO opening server
CD ..
CD server
NPM run dev
PAUSE

问题是:

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

dev.bat 中的开头调用了一个 cmd 窗口,我不知道如何指定我希望它像在 vscode 中按 ctrl+shift+5 一样打开。

我想做的事可能吗?

【问题讨论】:

    标签: node.js windows batch-file visual-studio-code cmd


    【解决方案1】:

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

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

    {
        // 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"]
              }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-06
      • 2022-08-22
      • 2022-11-23
      • 2017-09-07
      • 2021-12-23
      • 2021-02-17
      • 1970-01-01
      • 2023-02-07
      • 2022-12-07
      相关资源
      最近更新 更多