Batch脚本中的用户交互:CHOICE命令的妙用

Batch脚本中的用户交互:CHOICE命令的妙用

在自动化脚本的世界中,Batch文件以其简洁和高效而著称,但有时我们也需要与用户进行交互以获取输入或提供选择。这就是CHOICE命令大放异彩的地方。本文将深入探讨如何在Batch文件中使用CHOICE命令,通过实际代码示例,展示如何利用这一命令提升脚本的交互性和灵活性。

CHOICE命令简介

CHOICE命令是Batch脚本中一个非常实用的功能,它允许用户在命令提示符下通过输入选项来响应脚本提供的提示。这个命令通常用于需要用户决策的场景,比如选择不同的操作模式或确认操作。

CHOICE命令的基本语法
CHOICE [/C:options] [/M [promptString]]
  • /C:options:指定用户可以选择的选项字符集,默认为YN(是或否)。
  • /M [promptString]:显示提示信息。
使用CHOICE命令的步骤
  1. 定义选项字符集:根据需要选择的操作定义选项字符集。
  2. 提供提示信息:向用户展示需要做出选择的提示信息。
  3. 获取用户输入:使用ERRORLEVEL变量获取用户的选择。
  4. 根据用户输入执行操作:使用IF语句根据不同的ERRORLEVEL执行相应的命令。
示例代码

以下是一个使用CHOICE命令的Batch脚本示例,该脚本允许用户选择是否删除指定的文件。

@echo off
SET filename=example.txt
SET /P choice=Do you want to delete %filename%? (Y/N):IF /I "%choice%"=="Y" (del "%filename%"echo %filename% has been deleted.
) ELSE IF /I "%choice%"=="N" (echo Deletion canceled.
) ELSE (echo Invalid choice. Please enter Y or N.
)
CHOICE命令的高级用法
  1. 自定义选项字符集:通过/C参数自定义用户可以选择的选项字符集。
CHOICE /C:YN /M "Do you want to continue? (Y/N):"
  1. 忽略大小写:使用/I开关忽略用户输入的大小写。
IF /I "%ERRORLEVEL%"=="1" (echo User selected N.
)
  1. 多个提示选项:提供多个选项供用户选择。
CHOICE /C:12345 /M "Choose an option: 1, 2, 3, 4, or 5"
IF ERRORLEVEL 5 GOTO option5
IF ERRORLEVEL 4 GOTO option4
REM ... 其他选项
  1. 嵌套CHOICE命令:在用户选择的基础上进一步细化选择。
CHOICE /C:YN /M "Do you want to proceed with option A or B? (Y/N)"
IF ERRORLEVEL 2 GOTO optionB
REM 处理选项A
结论

CHOICE命令是Batch脚本中实现用户交互的强大工具。通过本文的学习,你现在应该能够理解并应用CHOICE命令来增强你的脚本。无论是简单的是/否选择,还是复杂的多选项逻辑,CHOICE命令都能够提供必要的支持。

掌握CHOICE命令的使用方法,将使你的Batch脚本更加智能和用户友好。在实际应用中,根据具体需求灵活运用CHOICE命令,可以显著提升脚本的功能性和交互体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从实验室走向商业化,人形机器人时代要来了?

从国内市场看,据机构报告显示,预计到2026年中国人形机器人产业规模将突破200亿元。特别是在生成式AI技术大爆发的当下,未来人形机器人更是极有可能实现超预期增长。 近日,特斯拉CEO埃隆马斯克(Elon Musk)在特斯拉2024年股东大会上…

【Unity设计模式】✨使用 MVC 和 MVP 编程模式

前言 最近在学习Unity游戏设计模式,看到两本比较适合入门的书,一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式,因此很值得学习 本…

System.currentTimeMillis() JAVA 转C#

JAVA中的System.currentTimeMillis() ,指获取当前时间与1970年1月1日00:00:00 GMT之间所差的毫秒数的方法。 这个方法返回的是一个long类型的值,表示从某个固定时间点(通常是UNIX纪元,即1970年1月1日00:00:00 GMT)到…

六西格玛培训引领久立特材品质新高度,行业领军再升级

久立特材六西格玛管理项目于6月27 日启动。久立特材作为行业内的领军企业,此次引入六西格玛管理法,旨在进一步提升企业运营效率和产品质量,实现持续改进和卓越运营。 久立特材的高层领导与张驰咨询的资深顾问朱老师共同出席项目启动仪式&am…

心理学|人格心理学——人格心理学单科作业(中科院)

一、单选题(第1-40小题,每题1.5分,共计60分。) 1、没有两个人能对同一事物做出相同的反应,反映的是人格的( ) 分值1.5分 A、稳定性 B、独特性 C、统合性 D、功能性 正确答案: B、独特性 2、人格决定一个人的生活方式,甚至有时会决定一个人的命运,反映的…

【python刷题】蛇形方阵

题目描述 给出一个不大于 99 的正整数n,输出n*n的蛇形方阵。从左上角填上1开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用3个字符,前面使用空格补齐。 输入 输入一个正整数n,含义如题所述 输出 输出符合…

python实现windows 10 定时自动pppoe拨号-魔行观察

此脚本适用于windows 10系统的vps服务器 import subprocess import time# PPPoe 用户名和密码 USERNAME 81239078262 PASSWORD 345543 # 拨号连接名称 CONNECTION_NAME pppoedef dial_pppoe():subprocess.run([rasdial, CONNECTION_NAME, USERNAME, PASSWORD])# 如果需要定…

【正点原子K210连载】 第十二章 跑马灯实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1)实验平台:正点原子ATK-DNK210开发板 2)平台购买地址https://detail.tmall.com/item.htm?id731866264428 3)全套实验源码手册视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 第十二章 跑马灯实验…

使用 PHP 和 Selenium WebDriver 实现爬虫

随着互联网的蓬勃发展,我们可以轻松地获取海量的数据。而爬虫则是其中一种常见的数据获取方式,特别是在需要大量数据的数据分析和研究领域中,爬虫的应用越来越广泛。本文将介绍如何使用 php 和 selenium webdriver 实现爬虫。 一、什么是 Se…

Cmake使用笔记1

cmake 问题1: Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19043. 问题分析 在Windows平台上,使用CMake或Visual Studio等开发工具时,选择正确的Windows SDK版本以确保你的应用程序能够针对目标Windows版本进行编…

iptables(12)实际应用举例:策略路由、iptables转发、TPROXY

简介 前面的文章中我们已经介绍过iptables的基本原理,表、链的基本操作,匹配条件、扩展模块、自定义链以及网络防火墙、NAT等基本配置及原理。 这篇文章将以实际应用出发,列举一个iptables的综合配置使用案例,将我们前面所涉及到的功能集合起来,形成一个完整的配置范例。…

SpringMVC的架构有什么优势?——控制器(一)

文章目录 控制器(Controller)1. 控制器(Controller):2. 请求映射(Request Mapping):3. 参数绑定(Request Parameters Binding):4. 视图解析器(View Resolver):5. 数据绑定(Data Binding):6. 表单验证(Form Validation)…

TAPD项目管理软件无法与企业微信进行关联

TAPD一段时间未使用后,需要重新启动,此时会出现你的企业微信尚未与TAPD账号关联的提示 解决方案:找到TAPD应用,先删除应用,然后再解除禁用即可

树洞陪聊陪玩交友程序系统源码,解锁交友新体验

在繁忙的都市生活中,你是否渴望找到一片属于自己的秘密花园,倾诉心声、分享快乐?今天,就让我带你走进这片名为“树洞”的神秘之地,感受陪聊陪玩交友的全新魅力! 🌳树洞陪聊陪玩交友程序系统 你…

DC/AC电源模块:为智能家居设备提供恒定的电力供应

BOSHIDA DC/AC电源模块:为智能家居设备提供恒定的电力供应 DC/AC电源模块是一种常见的电源转换器,它将直流电源(DC)转换为交流电源(AC),为智能家居设备提供恒定的电力供应。在智能家居系统中&a…

【React】portal

createPortal 允许你将 JSX 作为 children 渲染至 DOM 的不同部分。 createPortal(children, domNode, key?) 使用 portal 渲染模态对话框 import NoPortalExample from "./components/NoPortalExample"; import PortalExample from "./components/PortalEx…

新手在Temu上怎样上架商品?

作为新手卖家,学习如何在Temu上架商品是一个重要的步骤。Temu是海外版拼多多,受到了很多卖家的欢迎。在这篇文章中,我们将介绍如何在Temu上架商品的步骤,以帮助新手顺利开始在线销售。 一、Temu上架商品的步骤: 第一…

JVM(11):虚拟机性能分析和故障解决工具之jstack工具

1 jstack(Stack Trace forJava)作用 查看或导出 Java 应用程序中线程堆栈信息 。 线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、长时间等待外部资源等…

案例:MySQL主从复制与读写分离

一、案例分析 1.案例概述 在实际的生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,一般来说都是通过主从复制(Master-Slave)来同步数据,再通…

uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)

vite 中使用 /deep/ 进行样式穿透报错 原因:vite 中不支持,换成 ::v-deep 或:deep即可