使用批处理文件自动启动 5 个单独的 cmd 提示,其中每个 cmd 提示指向不同的目录并启动 php web 服务器

Posted

技术标签:

【中文标题】使用批处理文件自动启动 5 个单独的 cmd 提示,其中每个 cmd 提示指向不同的目录并启动 php web 服务器【英文标题】:Use a batch file to automatically start 5 separate cmd prompts, where each cmd prompt points to a different directory and starting the php web server 【发布时间】:2021-06-29 04:25:20 【问题描述】:

我希望你能帮我解决这个问题,我认为这很简单,但结果却是一个非常糟糕的问题。 正如主题行中提到的,这就是我想要完成的:

自动运行5个命令提示符,每个新的命令提示符都需要做如下操作 将目录更改为特定位置 启动内置的php web服务器

这是我目前的 .bat 文件的代码:

start cmd /k
cd "directory 1"
php -S localhost:8081

start cmd /k
cd "directory 02"
php -S localhost:8082

start cmd /k
cd "directory 03"
php -S localhost:8083

etc...

更新(这里是一些调整后的工作命令)

start "Dir1" /d "directory1" cmd /k "php -S localhost:8081"
start "Dir2" /d "directory2" cmd /k "php -S localhost:8082"
start "Dir3" /d "directory3" cmd /k "php -S localhost:8083"
start "Dir4" /d "directory4" cmd /k "php -S localhost:8084"
start "Dir5" /d "directory5" cmd /k "php -S localhost:8085"
start "Dir6" /d "directory6" cmd /k "php -S localhost:8086"

非常感谢。 干杯, 蒂姆·K

【问题讨论】:

【参考方案1】:

该命令必须与cmd /k 在同一行,否则您将启动一个新窗口并在原始窗口中执行下一行。 Start 有一个/d 开关来设置新进程的工作文件夹,所以你不需要cd

start "Dir1" /d "directory 1" cmd /k "php -S localhost:8081"
REM etc.

当文件夹名称和端口准确时,您可以使用for /L 循环来简化事情:

for /l %%i in (1,1,5) do start "Dir %%i" /d "directory %%i" cmd /k "php -S localhost:808%%i"

【讨论】:

非常感谢斯蒂芬,但这似乎只启动了第一个 cmd 提示符,而不是其他的?我将使用 .bat 文件中的命令更新我原来的问题。 第一个代码只打开一个提示,第二个应该启动其中的五个(假设,文件夹 directory %%i 存在(就像你的问题所暗示的那样) - 如果文件夹不存在,则没有 @ 987654329@ 被执行,你得到一个错误消息 invalid directory 代替) 再次感谢 Stephan,经过一番调整,这似乎确实可行 ;-)。 只是出于好奇:你做了什么调整? 请查看我更新的问题,了解我需要调整的内容。

以上是关于使用批处理文件自动启动 5 个单独的 cmd 提示,其中每个 cmd 提示指向不同的目录并启动 php web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

求救!cmd命令下提示系统找不到指定文件!!!大神们帮帮忙

dos下执行bat文件,如何让两个命令之间自动延迟3秒后再继续执行?

Windows cmd指令大全

windows 自定义批处理BAT/CMD启动Redis等软件

在使用 CMD 启动的进程内运行命令

BAT/CMD中将命令执行结果赋值给变量