Ich habe 2 Zeilen, die ich mehrmals täglich in cmd ausführen muss. Die Zeilen ähneln denen unten:ausführen Shell Befehl/Batch-Datei mit mehreren Zeilen von VBA
set_someclasspaths.bat
java -Xmx1024m foo.bar.stuff.Dashboard -var varone -from 20160701 -to 20160731 -outputdir c:\stuff -ir @ -dashboard
Ich habe über zwei Möglichkeiten nachgedacht, dies zu automatisieren. Die erste ist eine Batch-Datei und die zweite ist Senden-Schlüssel. Ich habe eine Datei gemacht, die es als something.bat bezeichnet und in die obigen zwei Zeilen eingefügt hat. Dies öffnet schnell ein Fenster in cmd und schließt wieder (auch wenn ich am Ende pause hinzufüge), und tut nicht, was ich erwarten würde - infact, soweit ich es sagen kann, führt den ersten Befehl dann nichts aus.
Die Sendetasten Methode scheint nur die erste Zeile zu laufen, habe ich versucht:
Sub testcreate()
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
wsh.Run "cmd.exe /K C:\a\b\set_someclasspaths.bat", windowStyle, waitOnReturn
wsh.sendkeys "java -Xmx1024m foo.bar.stuff.Dashboard -var varone -from 20160701 -to 20160731 -outputdir c:\stuff -ir @ -dashboard"
End Sub
Meine Batch-Datei und Java-Fähigkeit ist bestenfalls zweifelhaft, es wie der sauberere Weg scheinen würde zu lösen dies ist Batchdatei, also würde ich das lieber machen.
Ich glaube, ich übergebe Parameter an ein Java-Skript in der zweiten Zeile, ich bin nicht sicher, ob es eine Syntax dafür gibt, und ohne etwas Java und Batch-Datei-Sachen zu lernen, bin ich zum Stillstand gekommen.
Um zu klären, meine Frage ist zweifacher: erstens ist die Batch-Datei der bessere Weg, dies zu tun? Zweitens, warum funktioniert das nicht?
Hilfe sehr geschätzt.