从Batch中获取Cygwin的命令结果

时间:2014-01-19 01:46:29

标签: windows bash batch-file cygwin

问题

我是Cygwin的新手,我正在尝试从Batch运行Cygwin中的shell脚本并获取返回值。我一直在寻找,我尝试使用C:\cygwin[64]\bin\bash[64].exe甚至搞砸C:\cygwin[64]\Cygwin.bat,但无济于事。

基本上,我只是希望能够从批处理中与bash(来自Cygwin)进行交互。如果这对你来说似乎微不足道,请原谅我,因为我对Cygwin很新。无论如何,我还没有找到一个有效的在线解决方案。

示例Sudo代码:

cygwin-magic "echo shell-command"
#=> shell-command

我试过的一些东西

我通过漫长的Google搜索找到了所有这些东西。没有做我想做的事。

"C:\cygwin[64]\bin\base[64].exe" /cygdrive/c/users/<me>/desktop/tmp.sh
#=> ZWNobyAiaGVsbG8i

"C:\cygwin[64]\bin\base[64].exe" -d /cygdrive/c/users/<me>/desktop/tmp.sh
#=> y▒h/usr/bin/base[64]: invalid input

"C:\cygwin[64]\bin\base[64].exe" -d -i /cygdrive/c/users/<me>/desktop/tmp.sh
#=> y▒h▒▒e/usr/bin/base[64]: invalid input

"C:\cygwin[64]\bin\base[64].exe" -d -i "echo hello"
#=> /usr/bin/base[64]: echo hello: No such file or directory

# I kind of gave up on all of my other attempts and tried this because why not? Surprise surprise, it didn't work (not that I expected it to).
"C:\cygwin[64]\Cygwin.bat"
echo "hello"

tmp.sh的内容

简单地说,

echo "hello"

目的

我想从批处理中执行此操作的原因是我想通过批处理(在Windows上)与另一种语言的bash进行交互。我已经用第三种语言计划了我的解决方案,但它只是批量到cygwin不起作用。

注释

  • Windows 7家庭高级版x64
  • Cygwin x64
  • 我在代码中将所有64写为[64]因为我知道32位版本不使用它。
  • 如果我错过了某些内容或我的问题有点过时(过于宽泛,过于具体等等),请发表评论,我会更改。

1 个答案:

答案 0 :(得分:3)

也许您的意思是"C:\cygwin[64]\bin\basH[64].exe"而不是"C:\cygwin[64]\bin\base[64].exe"