
teste.vbs:
wscript.quit MsgBox ("Hello"&vbNewLine&"World",0)
funciona.
prova.bat:
WScript //Nologo Message.vbs "Hello"&vbNewLine&"World" 0
Mensagem.vbs:
wscript.quit MsgBox (wscript.arguments(0),wscript.arguments(1))
não funciona (por quê?).
prova.bat (sem nova linha)
WScript //Nologo Message.vbs "Hello World" 0
funciona.
Responder1
Em um script VBS, o e comercial &
significa "concatenar" (juntar) e vbNewLine
é uma constante definida.
Em um arquivo em lote, o "e" comercial significa "executar isto após a conclusão do comando anterior" e vbNewLine
é indefinido.
Contexto é tudo aqui, e você precisa descobrir o que está passando e o que significam os operadores e variáveis em cada contexto. Um dos comentários acima oferece uma maneira viável de pegar a entrada de um contexto e convertê-la para outro contexto.
Responder2
Dim Messaggio
Messaggio = Replace(wscript.arguments(0),"\n",vbNewLine)
wscript.quit MsgBox(Messaggio,wscript.arguments(1))
É perfeito para caixa de mensagens universal com lote! ;-)
Com valor de retorno em% errorlevel% em caso de escolha.
Obrigado de todo!