批处理文件消息框:消息正文中的回车符return

Batch file message box: Carriage return in message body

我使用 this method given by boflynn 成功显示了来自批处理文件的消息框,用于上一个问题。

我正在尝试在消息框正文文本中插入回车符 return,但到目前为止,我所有的尝试以及引号和 Char(13) 的组合都失败了。

参考上面链接的答案,我正在寻找一个可以将文本放在多行上的消息框,例如:

This will
be shown
in a popup

这可能吗?

VBScript 有一个 builtin constant vbCr 用于 Carriage Return 字符。将您的(子)字符串与该常量连接起来,并在消息框中显示结果:

MsgBox "This will" & vbCr & "be shown" & vbCr & "in a popup"

要显示批处理文件中的多行文本,您需要将每一行作为单独的参数传递

cscript MessageBox.vbs "This will" "be shown" "in a popup"

并连接参数

ReDim args(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
  args(i) = WScript.Arguments(i)
Next

MsgBox Join(args, vbCr)

您可以尝试使用此示例从函数中调用 MsgBox :

@echo off
set "Msg=Hey !\nHere is a message !\nThis will\n be shown\n in popup\n with multi-lines !"
Rem 64=vbInformation, 48=vbExclamation, 16=vbCritical 32=vbQuestion
set Type=64 48 16 32
Set "Title=Example of MsgBox in batch with vbscript"
For %%a in (%Type%) Do Call:MsgBox "%Msg%" "%%a" "%Title%"
exit /b
::**********************************************************
:MsgBox <Msg> <Type> <Title>
echo MsgBox Replace("%~1","\n",vbCrLf),"%~2","%~3" > "%tmp%\%~n0.vbs"
Cscript /nologo "%tmp%\%~n0.vbs" & Del "%tmp%\%~n0.vbs"
exit /b
::**********************************************************