当前位置: 首页 > 知识库问答 >
问题:

批处理文件[duplicate]中的变量和if语句的问题

吕嘉荣
2023-03-14

我尝试编写了一个简单的批处理文件,您可以在下面看到:

@echo off
title test file

:menu
set /p foo = Select option (1, 2, 3):
if foo == 1 goto one
if foo == 2 goto two
if foo == 3 goto three

:one
echo One!
goto menu

:two
echo Two!
goto menu

:three
echo Three!
goto menu

共有1个答案

宋景福
2023-03-14

对于已知的选择,不要使用set/p,改用choice

@Echo Off
Title test file

:menu
Choice /C 123 /M "Select option"
If ErrorLevel 3 GoTo three
If ErrorLevel 2 GoTo two

:one
Echo One!
GoTo menu

:two
Echo Two!
GoTo menu

:three
Echo Three!
GoTo menu

如果您想继续使用错误的命令,那么下面这样的命令更合适:

@Echo Off
Title test file

:menu
Set "foo="
Set /P "foo=Select option [1,2,3]?"
If Not Defined foo GoTo menu
If "%foo%"=="1" GoTo one
If "%foo%"=="2" GoTo two
If "%foo%"=="3" GoTo three
GoTo menu

:one
Echo One!
GoTo menu

:two
Echo Two!
GoTo menu

:three
Echo Three!
GoTo menu
 类似资料:
  • 我无法编译这个程序。有人看到我做错了什么吗?在if语句之后,变量matchOdds似乎不存在。但是我想打印出来。

  • 好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,

  • 我只是在学习编码,所以我遇到了“k不能解决”的问题。 我以前尝试过引入变量,如果运算符by: 我预期输出为2 相反,无法解析got k

  • 本文向大家介绍批处理命令教学之if语句,包括了批处理命令教学之if语句的使用技巧和注意事项,需要的朋友参考一下 if用于条件判断,适用于以下情形:   1、判断驱动器、文件或文件夹是否存在,用 if exist 语句;   2、判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句;   3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;   4、判断某个变量是否

  • 问题内容: 我收到以下代码的编译错误: 如果将其更改为以下代码,则没有编译错误: 为什么第一种语法是错误的,以及从哪种语言标准开始? 问题答案: Java规范说一条语句具有以下形式: 在哪里和可各种各样的事情,包括块(代码括号括起来),任务(已声明的变量),其他的if语句等。 值得注意的是,该列表中缺少声明语句(例如或),因此会出现编译错误。 有关完整列表,您可以在此处阅读Java规范:http

  • 问题内容: 在Python中,if语句内的变量作用域是否在if语句外可见?(来自Java背景,因此有点奇怪) 在以下情况下,首先在if块内部定义名称,但是该变量在if块外部也可见。我原以为会发生错误,但打印出“ joe”。 问题答案: 语句未在Python中定义范围。 循环,语句,/等都不会。 只有模块,函数和类定义范围。 请参阅Python教程中的Python作用域和命名空间。