Vbscript MsgBox Zeilenumbruch aus Batch-Argument

Vbscript MsgBox Zeilenumbruch aus Batch-Argument

test.vbs:

wscript.quit MsgBox ("Hello"&vbNewLine&"World",0)

funktioniert.

prova.bat:

WScript //Nologo Message.vbs "Hello"&vbNewLine&"World" 0

Nachricht.vbs:

wscript.quit MsgBox (wscript.arguments(0),wscript.arguments(1))

funktioniert nicht (Warum?).

prova.bat (ohne Zeilenumbruch)

WScript //Nologo Message.vbs "Hello World" 0

funktioniert.

Antwort1

In einem VBS-Skript &bedeutet das Et-Zeichen „verketten“ (verbinden) und vbNewLineist eine definierte Konstante.

In einer Batchdatei bedeutet das Et-Zeichen „Führen Sie dies aus, nachdem der vorherige Befehl abgeschlossen ist“ und vbNewLineist undefiniert.

Der Kontext ist hier alles, und Sie müssen herausfinden, was Sie übergeben und was die Operatoren und Variablen in jedem Kontext bedeuten. Einer der obigen Kommentare bietet eine praktikable Möglichkeit, die Eingabe aus einem Kontext zu übernehmen und in den anderen Kontext zu konvertieren.

Antwort2

Dim Messaggio
Messaggio = Replace(wscript.arguments(0),"\n",vbNewLine)
wscript.quit MsgBox(Messaggio,wscript.arguments(1))

Eignet sich perfekt für Universal Message Box mit Batch! ;-)
Mit Rückgabewert in %errorlevel% bei Auswahl.
Danke an alle!

verwandte Informationen