Sie ein Leerzeichen zwischen den beiden Argumenten müssen, da sonst die Batch-Datei nur ein einziges Argument sehen.
WshShell.Run "T.bat "& Var1 & Var2
wird
WshShell.Run "T.bat foobar"
Um die unbeabsichtigte Verkettung Änderung dies zu vermeiden:
WshShell.Run "T.bat "& Var1 & Var2
in diese:
WshShell.Run "T.bat "& Var1 & " " & Var2
oder (besser) diese:
WshShell.Run "T.bat """& Var1 & """ """ & Var2 & """"
Die zusätzlichen doppelten Anführungszeichen dienen zum Behandeln von Leerzeichen in den Argumenten. Sie können machen, dass ein wenig mehr lesbar durch eine Angabe Funktion:
Function qq(str)
qq = """" & str & """"
End Function
WshShell.Run "T.bat "& qq(Var1) & " " & qq(Var2)
Als Randnotiz: in Batch-Datei, die Sie %~1
und %~2
statt nur %1
und %2
verwenden möchten. Die Tilde entfernt äußere doppelte Anführungszeichen von Parametern.
Schön, aber was schief geht? Einige Fehlermeldung (en)? Unerwartetes Verhalten? Bitte [bearbeiten] Sie Ihre Frage ... – JosefZ
Sie benötigen ein Leerzeichen zwischen Parametern im Batch. –