In Excel, kopieren Sie diesen Code am Anfang Ihres Moduls:
Private Declare Function OpenProcess _
Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle _
Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject _
Lib "kernel32" _
(ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
nun das Makro unter diesem Code kopieren und ändern Sie den Pfad Ihrer Fledermaus Dateinamen und Verzeichnisposition übereinstimmen :
Sub runBatch()
Dim path As String
path = "C:\Users\yourUserName\Desktop\myBatchFile.bat" '<-- change this
'Ask user for prefix
Dim prefix As String
prefix = InputBox(Prompt:="Enter Prefix: ", Title:="Prefix", Default:="Enter Prefix Here")
'Make sure something was entered
If prefix = vbNullString Or prefix = "Enter Prefix Here" Then Exit Sub
'Run bat file
procID = Shell(path & " " & prefix, vbNormalFocus)
If procID = 0 Then
'Handle Error, Shell Didn't Work
Else
hProcess = OpenProcess(&H100000, True, procID)
WaitForSingleObject hProcess, -1
CloseHandle hProcess
End If
End Sub
Dieses Makro Aufforderung S Der Benutzer kann ein Präfix in ein Textfeld eingeben und übergibt den Wert dann an die Stapeldatei. Jetzt ist Ihre Batch-Datei ändern, indem Sie das Präfix %1
den übergebenen Parameter zu verwenden (bedeutet der erste Parameter Batchdatei übergeben):
SET PREFIX=%1
Wenn Sie den Wert in die Batch-Datei übergeben, um sehen möchten, Fügen Sie ECHO hinzu und halten Sie die Stapelverarbeitungsdatei an, damit die Konsole nicht sofort verworfen wird.
@echo off
ECHO Prefix passed in: %1
pause
Vielleicht sollten Sie diese Frage prüfen und auf Ihre spezifische Situation anpassen: http://stackoverflow.com/q/8735463/6671476 – RCaetano