将vbYesNoCancel的输出传递给批处理 [英] Passing the output of vbYesNoCancel into a batch

查看:245
本文介绍了将vbYesNoCancel的输出传递给批处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

早上好,我正在为一个简单的程序编写批处理文件,并且正在使用VBscript接收用户的输入.在程序的这一点上,我有一个问题:您现在要备份吗?"在MsgBox中.如果用户按是",则必须转到名为:AUTOBACKUP的批处理中的标签.如果没有,它必须转到:REJECTAB.这是我当前拥有的代码,但是它不起作用?我该如何纠正?

Good day, I am cuurently writing a batch file for a simple program and I am using VBscript to recieve input from users. At this point in the program I have the question: "Would you like to backup it now?" in a MsgBox. If the user presses yes, it has to go to a tag in the batch called :AUTOBACKUP. For no, it has to goto :REJECTAB. Here is the code I currently have, but it does not work? How could I correct it?

 :STARTUPDAS
    ECHO Wscript.echo i=msgbox("The automatic backup function is active. Would you like to backup now?",                  VBYesNoCancel + VBQuestion, "BACKUP")>vbst.vbs&vbst.vbs
    SET _stringb
    ENDLOCAL & SET i=%_stringb%
    cls
    cls
    echo.
    echo.
    echo             The automatic backup function is active.
    echo             Would you like to perform a backup now? Y/N
    echo.
    if i==6 goto AUTOBACKUP
    if i==7 goto REJECTAB
    echo.
    echo Invalid option. Please try again
    echo.
    pause
    :STARTUPDAS
    ECHO Wscript.echo i=msgbox("The automatic backup function is active. Would you like to backup now?",                  VBYesNoCancel + VBQuestion, "BACKUP")>vbst.vbs&vbst.vbs
    SET _stringb
    ENDLOCAL & SET i=%_stringb%
    cls
    cls
    echo.
    echo.
    echo             The automatic backup function is active.
    echo             Would you like to perform a backup now? Y/N
    echo.
    if i==6 goto AUTOBACKUP
    if i==7 goto REJECTAB
    echo.
    echo Invalid option. Please try again
    echo.
    pause

谢谢.

推荐答案

@echo off

    call :MsgBox "Should i do something?"  "VBYesNoCancel+VBQuestion" "Just asking"
    if errorlevel 7 (
        echo NO - do nothing
    ) else if errorlevel 6 (
        echo YES - do something
    ) else if errorlevel 2 (
        echo CANCEL - do .....
    )

    exit /b

:MsgBox prompt type title
    setlocal enableextensions
    set "tempFile=%temp%\%~nx0.%random%%random%%random%vbs.tmp"
    >"%tempFile%" echo(WScript.Quit msgBox("%~1",%~2,"%~3") & cscript //nologo //e:vbscript "%tempFile%"
    set "exitCode=%errorlevel%" & del "%tempFile%" >nul 2>nul
    endlocal & exit /b %exitCode%

对于简单的MsgBox,最好使用WScript.Quit将MsgBox函数的结果作为错误级别返回

For a simple MsgBox, it is better to use WScript.Quit to return as an errorlevel the result of the MsgBox function

这篇关于将vbYesNoCancel的输出传递给批处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆