使用vba在cygwin中执行bash

使用vba在cygwin中执行bash,bash,vba,Bash,Vba,我通常使用bash~/annovar.sh在cygwin终端中运行bash脚本。我试图避免编写脚本,并使用下面的VB调用和执行bash脚本。这是在excel 2010中的windows计算机上 VB 端接头 cygwin终端启动,但显示: annovar.sh:没有这样的文件或目录 annovar.sh位于C:\cygwin\bin中\ 应该在别的地方吗?66 50602_15:56:31_15:56:11_15:56:21;50602_15:57:07_15:56:47_15:56:57,1参

我通常使用bash~/annovar.sh在cygwin终端中运行bash脚本。我试图避免编写脚本,并使用下面的VB调用和执行bash脚本。这是在excel 2010中的windows计算机上

VB

端接头

cygwin终端启动,但显示: annovar.sh:没有这样的文件或目录

annovar.sh位于C:\cygwin\bin中\


应该在别的地方吗?66 50602_15:56:31_15:56:11_15:56:21;50602_15:57:07_15:56:47_15:56:57,1参考?谢谢:。

您需要指向annovar.sh的完整文件路径,因为cmd窗口通常会在标准system32目录中创建。关于问题的其余部分,您需要在mintty.exe命令行的文档中查找传递的其他字符串。我不熟悉此程序。1的最后一个参数是窗口样式,它也可以作为任何VBWindowsStyle枚举传递。您还可以在该参数的末尾添加另一个布尔参数。运行命令以等待返回

看看您正在尝试做什么,只创建一个批处理文件并使用Shell方法调用它可能更有意义

最后一个指针,您试图将run命令设置为对象,这是不对的-如果需要从命令行读取输出,请改用.Exec.StdOut.ReadAll方法

Private Sub CommandButton1_Click()
Dim cmd As String
Dim ret As Double
Dim WshShell As Object
Dim plink_object As Object

' Run Linux Commands
Set WshShell = CreateObject("WScript.Shell")
On Error Resume Next
Set plink_object = WshShell.Run("C:\cygwin\bin\mintty.exe annovar.sh 66 ""50602_15:56:31_15:56:11_15:56:21;50602_15:57:07_15:56:47_15:56:57""", 1)
On Error GoTo 0