2014-06-25 77 views
0

當我正常運行它時(使用cygwin窗口),我有一個bash腳本,它工作正常。下面的代碼:使用VBA運行腳本時發生awk錯誤

B=$2 #(ie. B="50602_15:56:31_15:56:11_15:56:21") 

for line in ${B//;/ } ; 
do 
    TENT=`echo ${line} | awk '{split($0,numbers,"_"); print numbers[1]}'`"_sim_fills.txt" 
done 

現在我想在Excel中運行使用VBA此腳本:

Public Sub test() 
    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 fills_new.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 
End Sub 

我得到了一個錯誤: 「awk: command not found」。 任何想法?

+1

嘗試在腳本中提供'awk'的完整路徑。 – BroSlow

+0

@BroSlow - thx :) – herder

+1

我建議'c:\ cygwin \ bin'應該在windows的路徑中,以便將來可能添加的任何其他命令也可以使用。 – anishsane

回答

1

由於@BroSlow建議我使用awk的完整路徑,它工作正常。

B=$2 #(ie. B="50602_15:56:31_15:56:11_15:56:21") 

for line in ${B//;/ } ; 
do 
    TENT=`echo ${line} | "/cygdrive/c/cygwin/bin/awk" '{split($0,numbers,"_"); print numbers[1]}'`"_sim_fills.txt" 
done