1

我在 Windows 上使用 Vagrant,所以我需要许多命令提示符来做一些基本的事情——一个用于 Git,另一个用于rails server,第三个用于测试等。

我想制作用于启动 Rails 服务器和运行测试的 .bat 文件。

因此,我创建了包含此内容的 .bat 文件(大多数行都是从 git-cmd.bat 复制的):

@rem Do not use "echo off" to not affect any child calls.
@setlocal

@rem Get the abolute path to the current directory, which is assumed to be the
@rem Git installation root.
@for /F "delims=" %%I in ("%~dp0") do @set git_install_root=%%~fI
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH%

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%

@set PLINK_PROTOCOL=ssh

D:
@cd D:\Documents\GitHub\blog
@start %COMSPEC%

vagrant ssh -c "cd /vagrant && rails s"

它启动服务器并立即停止它。之后它关闭窗口。此外,它正在打开额外的命令提示符窗口。这是为什么?

我怎样才能让它启动服务器并保持打开状态?我试过pause,/waitcmd /k file.bat,但没有成功。

理想情况下,我会有 4/5 个 .bat 文件:vagrant_up.bat、vagrant_halt.bat、rails_server.bat(或 rails_start.bat 和 rails_stop.bat)和 rake_test.bat。那可能吗?

4

1 回答 1

1

这是打开额外的窗口

@start %COMSPEC%

不知道 vagrant,但我怀疑这条线应该是这样的,或者如果 Vagrant 是一个 exe,则完全放弃 %comspec% 部分。

@start "" %COMSPEC% vagrant ssh -c "cd /vagrant && rails s"

或者这可能意味着:

@start "" %COMSPEC% -c "cd /vagrant && rails s"
@vagrant ssh
于 2013-04-20T05:19:26.377 回答