我正在尝试编写一个bat
文件,在启动时会提示用户。我可以获得用户提示但是出错并且bat
文件关闭。基本上,如果答案是y,则调用vb
处的path
,如果答案为n,则bat
退出。下面的语法是否接近?谢谢你:)。
@ECHO OFF
:choice
set /P c=Do you want to send the DOSE report[y/n]?
if /I "%c%" EQU "Y" goto :L:\NGS\test_email_DOSE.xlsx
if /I "%c%" EQU "N" goto :exit
goto :choice
pause
exit
答案 0 :(得分:1)
试试这个:
@ECHO OFF
:choice
set /P c=Do you want to send the DOSE report[y/n]?
if /i %c%==y (
L:\NGS\test_email_DOSE.xlsx
) else if /i not %c%==n goto choice
pause
在此脚本中,仅当答案不是“y”时才会到达第二个if
。此外,您使用的goto
始终需要标签才能跳转到。路径不是标签。
我当然假设L:\NGS\test_email_DOSE.xlsx
是一条有效路径。
当我在我的电脑上运行它时会产生以下内容(我将文件保存为decide.cmd
):
D:\tmp>decide
Do you want to send the DOSE report[y/n]?d
Do you want to send the DOSE report[y/n]?f
Do you want to send the DOSE report[y/n]?y // (the Excel file is opened)
Press any key to continue . . .
D:\tmp>
答案 1 :(得分:0)
我可能会这样走。以前的答案会很好。但在我看来,这种方法看起来更清晰。
@ECHO OFF
:choice
SET /P c=Do you want to send the DOSE report [Y/N]?
IF /I %c%==Y (START "" "L:\NGS\test_email_DOSE.xlsx")
IF /I %c%==N GOTO :EOF
GOTO :choice