批处理文件消息框:消息正文中的回车符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
::**********************************************************
我使用 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
::**********************************************************