批处理文件消息框:邮件正文

时间:2016-08-08 11:18:19

标签: batch-file vbscript wsh

我正在使用this method given by boflynn为上一个问题成功地显示批处理文件中的消息框。

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

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

This will
be shown
in a popup

这可能吗?

2 个答案:

答案 0 :(得分:1)

VBScript的回车符号有builtin constant vbCr。将您的(子)字符串与该常量连接,并显示带有结果的消息框:

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)

答案 1 :(得分:0)

您可以尝试此示例示例从函数调用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
::**********************************************************