対応方法

バッチファイルからメッセージボックスを表示する場合バッチファイル単体では実現不可のため VBS を使用して実現する
※具体的には、バッチファイルから VBS を呼び出してメッセージボックスを表示し、 VBS から戻り値を受け取り、処理を切り替える

実際のコード

@echo off

rem メッセージボックスの表示
set msg="メッセージボックスのテスト [\n] で改行します"
set title="メッセージボックステスト"

for /f "usebackq tokens=* delims=" %%A in (`call cscript //Nologo msgbox.vbs %msg% "%title%"`) do set ret=%%A

echo %ret%

pause
exit
Option Explicit
rem /*******************************************************
rem  *  msgbox.vbs msg [,title]
rem  *
rem  *  引数
rem  *    msg   :表示するメッセージ
rem  *    title :メッセージボックスのタイトル
rem  *  動作
rem  *    メッセージボックスを表示し、クリックされたボタンに
rem  *    対応する数値を返す
rem  *    msg中の 「\n」という文字列は改行に変換する
rem  *  戻り値
rem  *    0:[はい]/1:[いいえ]
rem  ********************************************************/

Dim args
Dim arg(99)
Dim value
Dim cnt
Dim retBtn
Dim ret
Dim eLevel

rem 引数を変数にセット
Set args = WScript.Arguments
cnt = 0
For Each value In args
  arg(cnt) = value
  cnt = cnt + 1
Next

rem 改行文字の置換
arg(0) = RepExAll (arg(0), "\\n", VbCrLf)

eLevel = 0
retBtn = MsgBox (arg(0), 36, arg(1))

Select Case retBtn
  Case 6: ret = 0
  Case 7: ret = 1
End Select

WScript.Echo ret
WScript.Quit (eLevel)

rem /*******************************************************
rem  *  文字列を正規表現文字列で検索して、一致する文字列を
rem  *  すべて置換文字列に置換して返す
rem  *
rem  *  引数
rem  *    str1 :置換対象文字列
rem  *    reg  :正規表現文字列
rem  *    str2 :置換文字列
rem  *  戻り値
rem  *    置換後の文字列
rem  ********************************************************/
Function RepExAll ( str1, reg, str2 )
  Dim regExpression
  Dim Matchers
  Set regExpression = New RegExp

  regExpression.Pattern = reg
  regExpression.IgnoreCase = True
  regExpression.Global = True

  RepExAll = regExpression.Replace(str1, str2)
End Function