【问题标题】:Execute Multiple Command Using Batch File and install MySQL using batch file使用批处理文件执行多个命令并使用批处理文件安装 MySQL
【发布时间】:2015-05-03 18:35:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql batch-file cmd window


    【解决方案1】:

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

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

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

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

    第二部分永远不会运行,因为第一部分返回到命令提示符

    改用以下批处理文件:

    cd %CD%mysql\bin
    mysqld --install
    

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

    【讨论】:

      【解决方案2】:

      您似乎在这里有很多层: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 ...将您的脚本用户放回他们开始的目录是一种很好的形式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-30
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 1970-01-01
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        相关资源
        最近更新 更多