2016-05-26 1 views
0

Привет У меня есть совершенно рабочий битой по имени: start.bat , содержащий:Excel VBA не будет выполняться .bat, но вручную выполнение летучая отлично работает

start C:\Users\*user*\Documents\*path*\hidebat.vbs 

и когда он вручную открыт он отлично работает, имея в виду он открывает hidebat.vbs, который открывает .bat, который минимизирует загрузку файлов в мое облако. Следовательно, это проверено.

Я добавил

pause 

к start.bat, чтобы посмотреть, что она делает, и когда я говорю первенствовать, чтобы открыть start.bat он откроет CMD и отображать точную команду по мере необходимости, но не будет выполнять hidebat.vbs.

Я ожидаю, что есть какое-то ограничение по пути или ограничение среды, когда оно выполняется от excel, что не позволяет ему фактически выйти из этой ограниченной среды.

В первенствует я попытался вызова .bat в 3 различными способами с:

Dim path As String 
path = Application.ActiveWorkbook.path 
path = path & "\" 
Dim MY_FILENAME3 As String 
MY_FILENAME3 = path & "start.bat" 

1.

retVal = Shell(MY_FILENAME3, vbNormalFocus) 

' NOTE THE BATCH FILE WILL RUN, BUT THE CODE WILL CONTINUE TO RUN. 
If retVal = 0 Then 
    MsgBox "An Error Occured" 
    Close #FileNumber 
    End 
End If 

2.

PathCrnt = ActiveWorkbook.path 
Call Shell(PathCrnt & "start.bat") 

3.

Dim batPath As String: batPath = path 

Call Shell(Environ$("COMSPEC") & " /c " & batPath & "start.bat", vbNormalFocus) 

Кто-нибудь знает, почему он не выполнит файл .bat или что я могу сделать, чтобы он работал правильно?

Примечание. Я думаю, это потому, что он открывает путь по умолчанию, поэтому я собираюсь рассказать об этом «cd» к фактическому пути, в котором сохраняется excel и где находятся файлы .bat.

ответ

0

Да, что это был, путь был установлен в какой-то случайный/стандартный/рабочий/путь тока по команде, так что мне пришлось добавить:

Print #FileNumber, "cd " & path 

к первенствует макросъемки

так, что начало .bat было размещено:

cd *path* 
start *path*\hidebat.vbs 

Надеюсь, это поможет будущему меня.

Смежные вопросы