2017-02-10 10 views
0

Ich habe diesen Code in VBScript, die ein Batch-Skript mit einigen Argumenten startet.Übergabe von Variablen an Batch aus VBScript

CreateObject("WScript.Shell").Run "printTR.bat " & jsfunction() & " " & amount & " " & printer 

Das Problem ist, manchmal die jsfunction() Plätze, so wie Sie das zweite Wort als nother Variable gezählt werden würde sehen kann. Ich habe Dinge wie """ & jsfunction() & """" und """ & jsfunction() & """ ausprobiert, die das Skript überhaupt nicht funktionieren ließen.

Die jsfunction() ist im Grunde nur eine Rückgabe eines Benutzereingabefeldes auf der gleichen Seite. Es könnte alles enthalten, was auf einer Tastatur eingegeben werden kann.

Wie kann ich die Variable als einzelne Zeichenfolge übergeben?

+0

Ich stimme den engen Anfragen nicht zu, da ich alle Informationen zur Verfügung habe, die ich über das Problem zu sammeln weiß. Ich frage nicht, warum der Code nicht funktioniert, und ich stellte die Schritte zur Verfügung, die ich versuchte, um es zu beheben, und der Code, der Probleme verursacht. – GrumpyCrouton

+0

Also sollen wir nur raten, was 'jsfunction()' tut, wie [Alex in ihrer Antwort getan hat] (http://stackoverflow.com/a/42166692/692942)? - * "vorausgesetzt" jsfunction() 'gibt selbst keinen String zurück, der Anführungszeichen" * "enthält. Also, weil Sie nicht genug Informationen zur Verfügung stellen, sind die Leute übrig, um Sie zu erraten. – Lankymart

+0

@Lankymart Ich wusste nicht, dass das wichtig war. Das hätte leicht in den Kommentaren gefragt werden können und ich hätte es dem Beitrag hinzugefügt. – GrumpyCrouton

Antwort

1
CreateObject("WScript.Shell").Run "printTR.bat """ & jsfunction() & """ " & amount & " " & printer 

Ist der richtige Weg, um die Zeichenfolge mit Anführungszeichen (jsfunction() unter der Annahme, nicht selbst eine Zeichenfolge zurück, die Anführungszeichen enthält) zu übergeben.

Wenn das fehlschlägt seine vielleicht, weil die Batch-Datei jetzt erhielt auch die Zeichenfolge mit Anführungszeichen (echo %1 würde "a quoted string" zurück), wo ist erwartet nicht zu, diesen Gebrauch %~1 zu beheben, die die gleiche Zeichenfolge ist aber ohne Anführungszeichen.

Verwandte Themen