我正在尝试编写一个窗口批处理文件来串行执行多个任务,但是,它总是在脚本中的第一个命令后停止。 我使用这个批处理文件代码:
start cmd /k cd %CD%mysql\bin && mysqld --install
我想使用这个批处理文件命令并安装MySQL但它只运行一个命令
答案 0 :(得分:1)
批处理文件中有以下命令:
start cmd /k cd %CD%mysql\bin && mysqld --install
让我们把它分解成更小的碎片。
start
启动程序,命令或批处理脚本(在新窗口中打开。)cmd /k cd %CD%mysql\bin
运行`cd%CD%mysql \ bin然后返回cmd提示符。&&
如果上述成功,则运行下一个命令mysqld --install
成功,则mysqld --install
运行start cmd /k cd %CD%mysql\bin
第二部分永远不会作为第一部分返回到命令提示符运行。
请尝试使用以下批处理文件:
cd %CD%mysql\bin
mysqld --install
请注意,必须为变量CD分配一个合理的值,否则cd %CD%mysql\bin
将失败。
答案 1 :(得分:1)
这里似乎有很多图层: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
整个脚本的结束......将脚本用户放回到他们开始的目录中是一种很好的形式。