Search code examples
windowsbatch-filecygwinssh-tunnel

Opening Cygwin with Windows bat file and running script file


I require a tunnel between my windows machine to a UNIX server and wish to automate the process so that on startup the tunnel will be generated for me.

I installed Cygwin with ssh and autossh to connect to the remote server, built up the connection manually, and have confirmed that the connection works. The process involves 3 commands, which isn't a lot but something that would be great to have automated.

After creating a .sh script file, which includes my autossh connection commands, and saving it using Notepad ++ as a UNIX document (to avoid any potential conflicts regarding the file ending), I can navigate to this script in Cygwin and call bash script.sh. After which the connection is made and I can work on my server.

My problem comes when creating my bat file:

start /d "C:\cygwin\bin\" mintty.exe "C:\Users\user\Documents\Dev\" script.sh

The first part up to and including the .exe file works to open the Cygwin window, but I have been unsuccessful in feeding the script into it. I even tried including a --bash command before referencing the script file as follows, but I received an error that the command is unknown:

start /d "C:\cygwin\bin\" mintty.exe --bash "C:\Users\andrew\Documents\Development\" tunnel.sh

Does anyone know if and how it is possible to open a Cygwin window and call a script file within this window? This is my first time creating a bat file, so I hope this is perhaps a newbie problem that no one even bothers to post a solution online for...


Solution

  • you don't need start. assuming your Cygwin is in C:\cygwin you need just:

    chdir c:\cygwin\bin
    mintty /usr/bin/bash -l -c /cygdrive/c/Users/user/Documents/Dev/script.sh