2015-03-03 164 views

回答

1

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

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

让我们把它分解成小块。

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

第二部分将永远不会运行作为第一部分返回到命令提示

尝试以下批处理文件来代替:

cd %CD%mysql\bin 
mysqld --install 

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

+0

感谢DavidPostil – 2015-03-04 08:49:04

1

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