使用批处理文件执行多个命令并使用批处理文件安装 MySQL

Execute Multiple Command Using Batch File and install MySQL using batch file

我正在尝试编写一个 window 批处理文件来连续执行多个任务,但是,它总是在脚本中执行第一个命令后停止。 我正在使用这个批处理文件代码:

start cmd /k cd %CD%mysql\bin && mysqld --install

我想使用这个批处理文件命令并安装 MySQL 但它 运行 只有一个命令

您的批处理文件中有以下命令:

start cmd /k cd %CD%mysql\bin && mysqld --install

让我们把它分解成更小的部分。

  • start 启动程序、命令或批处理脚本(在新 window 中打开)
  • cmd /k cd %CD%mysql\bin 运行 `cd %CD%mysql\bin 然后 return 到 cmd 提示符。
  • && 如果以上成功则 运行 下一个命令
  • mysqld --install 运行 mysqld --install 如果 start cmd /k cd %CD%mysql\bin 成功

第二部分永远不会像第一部分那样运行return进入命令提示符

尝试使用以下批处理文件:

cd %CD%mysql\bin
mysqld --install

注意必须为变量 CD 分配一个合理的值,否则 cd %CD%mysql\bin 将失败。

这里似乎有很多层:startcmd /c(我认为您更喜欢在批处理文件中使用 cmd /k)。

只有 cd %CD%\mysql\bin && mysqld --install 有什么问题?当我尝试 运行 notepad.exe 时,这对我来说效果很好: cd /d %WINDIR%\System32 && notepad (注意这里额外的 '\' 字符,以防万一......如果额外的反斜杠不会受到伤害env var CD 已经有一个)。就此而言,我敢打赌 %CD%\mysql\bin\mysqld --install 会工作得很好。

但是,以防万一您想要额外的东西 – 或者,更有可能的是,需要它来实现您没有展示的其他一些功能。仅使用 cmd:

cmd /c "cd %CD%\mysql\bin && mysqld --install"

仅使用 start:

start "" "cd %CD%\mysql\bin && mysqld --install"

我会同时使用 startcmd 提出一个解决方案,但你根本不需要它。

顺便说一句,如果你不能直接调用 %CD%\mysql\bin\mysqld --install,我会考虑使用 pushd 而不是 cd,这样你就可以调用 popd在整个脚本的末尾...将脚本用户放回他们开始的目录是一种很好的形式。