Vbscript MsgBox nueva línea del argumento por lotes

Vbscript MsgBox nueva línea del argumento por lotes

prueba.vbs:

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

obras.

prueba.bat:

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

Mensaje.vbs:

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

no funciona (¿Por qué?).

prova.bat (sin nueva línea)

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

obras.

Respuesta1

En un script VBS, el signo &significa "concatenar" (unir) y vbNewLinees una constante definida.

En un archivo por lotes, el signo significa "ejecutar esto después de finalizar el comando anterior" y vbNewLineno está definido.

El contexto lo es todo aquí, y necesita descubrir qué es lo que está pasando y qué significan los operadores y variables en cada contexto. Uno de los comentarios anteriores ofrece una forma viable de tomar la entrada de un contexto y convertirla al otro contexto.

Respuesta2

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

¡Es perfecto para Universal Message Box con lote! ;-)
Con valor de retorno en %errorlevel% en caso de elección.
¡Gracias a todos!

información relacionada