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

start %windir%\system32\cmd.exe

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

echo "test in new window"

我该怎么做呢?


当前回答

如果我正确理解你这样做在一边你的bat文件将打开命令提示符和打印你的消息到屏幕上。

cmd.exe hello world

希望这能有所帮助。

其他回答

扩展来自@Dan Zuzevich的回答。如果你的目标文件在不同的驱动器上,下面是CD“更改目录”。例如,它必须从C盘和D盘调用文件。

:: Start MongoDB
start cmd.exe /k "mongod"

:: cd app directory, and start it
cd C:\project\dev
C:
start cmd.exe /k "npm run dev"

:: cd to api server, and start that
cd D:\api\server
D:
start cmd.exe /k "npm run dev"

如果我正确理解你这样做在一边你的bat文件将打开命令提示符和打印你的消息到屏幕上。

cmd.exe hello world

希望这能有所帮助。

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

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

start cmd /k echo Hello, World!

start before "cmd"将在一个新窗口中打开应用程序,"/K"将在新cmd启动后执行"echo Hello, World!"

您还可以使用/C开关进行类似的操作。

start cmd /C pause

这将执行“pause”,但在命令完成时关闭窗口。在这种情况下,你按下按钮。我发现这对“rails服务器”很有用,然后当我关闭我的开发服务器时,我不必关闭窗口。

在两个命令之间添加/k将按顺序执行这两个命令。

例子:

cmd /k echo "hello"

该命令将首先打开命令提示符,然后执行echo“hello”命令

我想让我的窗口在我杀死或重新启动Firebase后保持打开,所以我使用了两个批处理文件。

便于访问的桌面文件:run_firebase.bat:

--------------START FILE CONTENTS--------------

start cmd /k C:\dev\init_firebase_batch.bat

---------------END FILE CONTENTS---------------

C:\dev\init_firebase_batch.bat

--------------START FILE CONTENTS--------------

cd C:\dev\aptr_datasync\aperture-customer-hub
firebase emulators:start

---------------END FILE CONTENTS---------------

所以…双击run_firebase.bat,它将运行第二批。在按Ctrl+C退出我的进程后,窗口仍然打开。看似微不足道,但我不喜欢在写代码时分心。

我花时间解是因为我觉得它很简单。希望这能为其他人带来同样的简单。

我认为这验证了最初帖子中的问题:

我正在尝试在BAT文件中打开一个新的命令窗口 [x]打开后,我想在新窗口中执行BAT命令