test.vbs:

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

работает.

prova.bat:

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

Message.vbs:

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

не работает (почему?).

prova.bat (без перевода строки)

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

работает.

2 ответа2

1

В сценарии VBS амперсанд & означает "сцепление" (join), а vbNewLine - определенная константа.

В пакетном файле амперсанд означает «выполнить это после завершения предыдущей команды», а vbNewLine не определен.

Контекст - это все, что нужно, и вам нужно выяснить, что именно вы передаете, и что означают операторы и переменные в каждом контексте. Один из комментариев выше предлагает эффективный способ взять входные данные из одного контекста и преобразовать их в другой контекст.

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

Идеально подходит для Universal Message Box с партией! ;-)
С возвращаемым значением в% errorlevel% в случае выбора.
Спасибо всем!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .