This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: how to embed shell script within a .BAT file
- From: "Nellis, Kenneth" <Kenneth dot Nellis at xerox dot com>
- To: "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Tue, 11 Nov 2014 16:10:15 +0000
- Subject: RE: how to embed shell script within a .BAT file
- Authentication-results: sourceware.org; auth=none
- References: <87bnoforlc dot fsf at Rainer dot invalid>
> From: Achim Gratz
>
> Nellis, Kenneth writes:
> > Jeremy's solution is closest to what I was looking for; however I need
> > it to work from a networked, non-drive-mapped folder.
> > (CMD.EXE doesn't like UNC paths.) I hadn't realized that I could pipe
> > a script into bash.
>
> The solution to the UNC path problem is to put something
>
> PUSHD %~dp0
>
> near the beginning of the script. That is if you really want to have .bat
> files and click on them in Explorer. Associating the shell scripts
> properly so that Explorer will hand them to Cygwin sounds like a better
> solution to me.
BTW, works great! Here's the completed .BAT file preface with added error
handling so the CMD window doesn't auto-close if the bash code exits with
an error.
@echo off
set PATH=C:\cygwin64\bin;%PATH%
PUSHD %~dp0
type %0 | sed "0,/^---BASH SCRIPT FOLLOWS---/ d; s/\r*$//" | bash
if errorlevel 1 pause
exit
---BASH SCRIPT FOLLOWS---
...
I'll pursue associating a shell script with a file type
when I have more time.
--Ken Nellis
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple