从 Windows 命令行运行 cygwin 命令

从 Windows 命令行运行 cygwin 命令

我试图让 PhpStormvagrant rsync在文件更改时运行,因为内置功能rsync-auto无法适应我的深层目录结构。我能够在 PhpStorm 设置中设置观察程序,但我不知道如何正确运行它。问题是,当我运行vagrant upvagrant rsync从 Windows 命令行运行它时,我收到从错误路径到参数问题的各种错误,所以我决定在 cygwin 下运行它,现在它可以正常工作了。因此,我需要一个解决方案来从命令行运行 cygwin 并在其中执行命令。

我尝试过的:

C:/cygwin/bin/bash vagrant rsync

收到错误:

C:\Program Files\Vagrant\embedded\bin\ruby.exe: No such file or directory -- /cygdrive/c/Program Files/Vagrant/bin/../embedded/gems/gems/vagrant-1.6.5/lib/vagrant/pre-rubygems.rb (LoadError)

尝试过:

bash vagrant rsync

错误:

rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [Receive
r=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=
3.1.1pre1]

尝试找出输出不同的原因:

C:\>where bash
C:\Program Files\Git\bin\bash.exe

所以在第二种情况下使用 msysgit。

命令:

C:\cygwin\bin\mintty -e vagrant sync

输出:无。窗口立即打开并关闭。

答案1

使用 c:\cygwin\bin\run.exe 从 Windows cmd.exe 启动 cygwin 进程

答案2

使用bash带有--login&-c选项的命令从 Windows 启动 Cygwin 进程并查看输出。

IE。C:\\cygwin64\\bin\\bash --login -c 'whoami'

答案3

以下是我在 cygwin 中使用额外 PATH 启动 socat 的操作。

您也可以shell:startup在运行中执行此操作,并将快捷方式放入启动文件夹,然后它将在您登录时自动运行

启动_socat

@echo off
rem start with extra path
cmd.exe  /c "path=D:\Tools\Cygwin\bin;%path% & D:\Tools\Cygwin\bin\bash --login -c '/cygdrive/d/WebServer/start_socat.sh'"

pause

相关内容