我正在尝试编写一个窗口批处理文件来执行系列中的多个任务,但是它始终会在脚本中的第一个命令之后停止。 我用这个这个批处理文件代码:使用批处理文件执行多个命令并使用批处理文件安装MySQL
start cmd /k cd %CD%mysql\bin && mysqld --install
我想利用这个批处理文件命令和安装MySQL,但它只能运行只需要一个命令
我正在尝试编写一个窗口批处理文件来执行系列中的多个任务,但是它始终会在脚本中的第一个命令之后停止。 我用这个这个批处理文件代码:使用批处理文件执行多个命令并使用批处理文件安装MySQL
start cmd /k cd %CD%mysql\bin && mysqld --install
我想利用这个批处理文件命令和安装MySQL,但它只能运行只需要一个命令
您的批处理文件中下面的命令:
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
将失败。
似乎你在这里有很多图层:start
和cmd /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"
我会同时使用start
和cmd
提出一个解决方案,但你并不需要它。
顺便说一句,如果你不能直接调用%CD%\mysql\bin\mysqld --install
,我会考虑使用pushd
代替cd
,这样你可以在你的整个脚本的末尾呼吁popd
......这是一个好的形式把你的脚本用户回到他们开始的目录。
感谢DavidPostil – 2015-03-04 08:49:04