首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >BAT文件:打开新的cmd窗口并在其中执行命令

BAT文件:打开新的cmd窗口并在其中执行命令
EN

Stack Overflow用户
提问于 2012-02-22 18:18:22
回答 5查看 584.5K关注 0票数 192

我正在尝试在BAT文件中打开一个新的命令窗口:

代码语言:javascript
复制
start %windir%\system32\cmd.exe

打开后,我想在新窗口中执行一个BAT命令:

代码语言:javascript
复制
echo "test in new window"

我该怎么做呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-09 18:44:24

你可能已经找到了你的答案,因为这是一段时间以前你问的。但在编写错误代码时,我也尝试了类似的做法。我想在一个新的cmd窗口中运行"rails server“,这样我就不必打开一个新的cmd,然后再找到我的路径。

我发现像这样使用K开关:

代码语言:javascript
复制
start cmd /k echo Hello, World!

在"cmd“将在新窗口中打开应用程序和"/K”将执行"echo Hello,World!“之前启动。在新的cmd启动之后。

您也可以使用/C开关来执行类似的操作。

代码语言:javascript
复制
start cmd /C pause

这将执行“暂停”,但在命令完成时关闭窗口。在这种情况下,在你按下一个按钮之后。我发现这对"rails服务器“很有用,这样当我关闭我的开发服务器时,我就不需要再关闭窗口了。

票数 320
EN

Stack Overflow用户

发布于 2017-07-06 22:54:39

以上的回答对我很有帮助。但仍然需要一些弄清楚。这是一个示例脚本,我用它来启动3个web开发过程。它导致3个窗口保持打开,因为它们需要连续运行。

Mongo是全局添加到我的路径中的,所以我不需要像对其他两个程序那样执行cd。当然,文件的路径会有所不同,但希望这会有所帮助。

代码语言:javascript
复制
:: Start MongoDB
start cmd.exe /k "mongod"

:: cd app directory, and start it
cd my-app
start cmd.exe /k "npm run dev"

:: cd to api server, and start that
cd ../my-app-api
start cmd.exe /k "npm run dev"
票数 14
EN

Stack Overflow用户

发布于 2012-02-22 21:09:37

这并不是很容易。

最好的方法是将您希望在“新窗口”中执行的脚本部分放在一个单独的.bat文件中。这可能是不切实际的,例如,如果你需要来自脚本其余部分的大量状态(变量等)。一种选择是将您需要的任何值(例如要在其中操作的dir )传递给批处理文件:

代码语言:javascript
复制
start cmd.exe stuff.bat %this_dir%

如果你有大量的状态需要传输,你可以考虑在运行时生成一个批处理文件:

代码语言:javascript
复制
set foo=Hello, World
set list_me=%userprofile%

set tmpdir=c:\windows\temp
set tmp=%tmpdir%\tmp.foo

del /q /f "%tmp%"

echo.echo %foo%>>"%tmp%"
echo.dir "%list_me%">>>"%tmp"

start cmd.exe "%tmp%"

del /q /f "%tmp%"

显然,这是一个微不足道的例子。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9392874

复制
相关文章

相似问题

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