來自批次參數的 Vbscript MsgBox 換行符

來自批次參數的 Vbscript MsgBox 換行符

測試.vbs:

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

作品。

普羅瓦.bat:

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

訊息.vbs:

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

不起作用(為什麼?)。

prova.bat(不含換行符)

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

作品。

答案1

在 VBS 腳本中,& 符號&表示「連接」(連接),並且vbNewLine是已定義的常數。

在批次檔中,& 符號表示“在上一個指令完成後執行此指令”,且未vbNewLine定義。

上下文就是這裡的一切,您需要弄清楚您傳遞的是什麼,以及每個上下文中的運算符和變數的含義。上面的評論之一提供了一種可行的方法,可以從一個上下文中獲取輸入並將其轉換為另一個上下文。

答案2

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

非常適合帶有批次處理的通用訊息框! ;-)
如果選擇的話,回傳值在 %errorlevel% 中。
非常感謝!

相關內容