Вот мое решение. Это работает хорошо на мои *.sh сценарии независимо от того, где они находятся в иерархии каталогов. Заметьте что я CD к cygpath dirname перед называнием удара на cygpath. Это просто работает.
assoc .sh=bashscript
ftype bashscript=C:\cygwin\bin\bash.exe --login -i -c 'cd "$(dirname "$(cygpath -u "%1")")"; bash "$(cygpath -u "%1")"'
Обычно имеется эквивалентный флаг «нет». Например, fstrict-aliasing
можно отключить с помощью fno-strict-aliasing
. Дополнительные флаги см. В документации gcc.