Windows批处理bat接收用户输入

news/2025/2/1 21:31:43/文章来源:https://www.cnblogs.com/wutou/p/18696476

前言全局说明

Windows批处理bat接收用户输入


一、说明

1.1 环境:

Windows 11 家庭版 23H2 22631.3737

二、普通,接收用户输入方法

@echo off
set /p "userinput=请输入:"
echo userinput=%userinput%
pause

三、if语句块中,接收用户输入方法

@echo off
if "" == "" ( setlocal enabledelayedexpansion set /p "userinput=请输入: " echo userinput=!userinput! setlocal disabledelayedexpansion 
) 
pause

注意:在 if 语句块中接收用户输入时,要开启延迟变量,不开启 echo 输出时,内容会显示空


四、设置输入,默认值

4.1 方式1:

@echo off
echo [ INFO ] 请输入数字[默认1]: 
set /p userinput=1
echo userinput=%userinput%
pause

4.2 方式2:(百度AI)

@echo off
set /P choice="请选择一个选项(1-3,留空将默认为2): "
if "%choice%"=="" set choice=2
if "%choice%"=="1" echo 您选择了选项1
if "%choice%"=="2" echo 您选择了选项2
if "%choice%"=="3" echo 您选择了选项3
if not "%choice%"=="1" if not "%choice%"=="2" if not "%choice%"=="3" echo 无效的输入
pause

4.3 方式3:

@echo off
set a=123
set/p a=请输入a值(默认 123) :
echo a=%a%
pause

4.4 方式4:

@echo off
set a=123
set/p a=请输入a值(默认 %a%) :
echo a=%a%
pause

五、带延时提示用户输入

5.1 用 ping 延时

@echo off
set /p abc=请在5秒内输入yes或者no[默认:no]:
ping -n 5 127.0.0.0>nul
if "%abc%"=="" set abc=no
echo abc=%abc%
pause

5.2 用 timeout 延时

@echo off
set /p abc=请在5秒内输入yes或者no[默认:no]:
timeout /t 5 >nul
if "%abc%"=="" set abc=no
echo abc=%abc%
pause

六、判断用户是否输入:

@echo off
set/p a=请输入a值(默认 %a%) :
if defined %a% (set a=123
)
echo a=%a%
pause

defined 是判断是否有 a 这个变量,没有就创建a变量并赋值



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://zhidao.baidu.com/question/496503004.html (if语句里开启延迟变量)
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&ch=1&tn=98012088_21_dg&wd=bat输入默认值&oq=bat%25E6%258E%25A5%25E5%258F%2597%25E7%2594%25A8%25E6%2588%25B7%25E8%25BE%2593%25E5%2585%25A5%25E9%25BB%2598%25E8%25AE%25A4%25E5%2580%25BC&rsv_pq=97eec0510000d9d7&rsv_t=7d89xo63LU9%2Bdf52QjRtQUgtB%2FmSOZJp5%2BSqktYpzOixGqTRb%2FAOwQIXZsrGRObBwn11cNo&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_btype=t&inputT=1534&rsv_sug3=12&rsv_sug1=10&rsv_sug7=100&bs=bat接受用户输入默认值
https://ask.csdn.net/questions/208115 (延时输入)
https://www.cnblogs.com/wutou/p/15808526.html (timeout)
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&ch=1&tn=98012088_21_dg&wd=bat批处理 接受用户输入&oq=bat%25E6%2589%25B9%25E5%25A4%2584%25E7%2590%2586%2520%25E6%258A%25A5%25E9%2594%2599go-pear.phar&rsv_pq=aadd0f5100060cd7&rsv_t=01b0lhW1j%2FwwJZOk0%2FeIm32ssjUd%2FtCCS9zG2gv12DTTuc1ZRNHlMSbBtVHqdQVvi2RkrE0&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_btype=t&inputT=10066&rsv_sug3=65&rsv_sug1=37&rsv_sug7=100&rsv_sug2=0&rsv_sug4=10595 (4.1)
https://zhidao.baidu.com/question/269052314.html (4.3)
https://stackoverflow.org.cn/questions/54667291 (4.4)
http://www.bathome.net/thread-13327-1-1.html ( 六)



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

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

相关文章

25.2.1小记

Object类Object类中自带的toString和equals函数(默认比较管理者是否管理相同的对象,可以通过对子类函数的重构实现正常比较) // @Override//重写,编译器会默认构造类型检查public boolean equals(Object obj) {//向下造型CD cc = (CD)obj;return artist.equals(cc.artist…

“尝试一下挣钱的辛苦”之装师

我尝试了把我做的兽头卖出去,记录一下从孩子出生到找到妈咪领养的过程 因为没有太多预算,所以兽设没有找画师,我自己构思的;整个制作过程都要用到热熔胶,很容易烫到>_<(热熔胶——手作娘离不开的东西),梳理毛布也很让人头疼,弄得房间里都是毛毛,虽然但是,孩子…

“尝试一下挣钱的辛苦”

我尝试了把我做的兽头卖出去,记录一下从孩子出生到找到妈咪领养的过程 因为没有太多预算,所以兽设没有找画师,我自己构思的;整个制作过程都要用到热熔胶,很容易烫到>_<(热熔胶——手作娘离不开的东西),梳理毛布也很让人头疼,弄得房间里都是毛毛,虽然但是,孩子…

VScode使用插件open-in-browser在默认浏览器中打开html文件

1. vscode extension中搜索open in browser,并下载。 我下载的第一个2. 打开.html文件 alt+shift+b手动选择特定浏览器打开 alt+b用默认浏览器打开,如果没有设置默认浏览器,可能出现以下问题3. 配置默认浏览器 ctrl+shift+p打开command palette 输入settings.json,打开Open…

在MacOS上安装sqllite

参考教程 https://www.runoob.com/sqlite/sqlite-installation.html 1.下载sqllite安装包 https://www.sqlite.org/2025/sqlite-autoconf-3480000.tar.gz wget https://www.sqlite.org/2025/sqlite-autoconf-3480000.tar.gz tar -xvzf sqlite-autoconf-3480000.tar.gz cd sqlit…

【译】MongoDB EF Core 提供程序:有什么新功能?

原文 | Rishit, Luce 翻译 | 郑子铭 这是 Rishit Bhatia 和 Luce Carter 的客座文章。Rishit 是 MongoDB 的高级产品经理,专注于 .NET 开发人员体验,在进入产品管理部门之前,他已经使用 C# 工作多年。Luce 是 MongoDB 的开发倡导者、Microsoft MVP,热爱代码、阳光和学习。本…

06. 文件权限

一、文件属性Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保证系统的安全性,Linux 系统对不同的访问用户访问同一个文件(包括目录文件)的权限做了不同的规定。在 Linux 中,我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及…

java中的Hashtable

Hashtable Hashtable 是 Java 中的一个古老的集合类,它实现了 Map 接口,基于哈希表存储键值对。 Hashtable 是线程安全的,所有方法都用 synchronized 修饰,因此在多线程环境下可以安全使用。 不过,由于它的性能较差,现代开发中更推荐使用 HashMap Hashtable中的t是小写,…

[HCTF 2018]admin

打开靶机进入登录界面,账号输入admin,密码随便输入一个密码,使用burp抓包后发送到攻击器将密码设为变量,导入字典,开始攻击发现密码"123"的返回长度不同,使用"123"登录,得到flag

DeepSeek LLM

一、背景动机开源社区的关注点:LLaMA 之后,开源社区主要关注训练固定规模的高质量 LLM(如 7B、13B、34B 和 70B),而对 LLM 的缩放定律研究探索较少。缩放定律的重要性:当前开源 LLM 仍处于 AGI 发展的初期阶段,因此研究扩展定律对于未来发展至关重要。缩放结论的分歧:早…

24-25Web开发技术#SpringBoot综合项目实战e1

选用IntelliJ IDEA Community Edition 2024.2 将reggie作为项目(Project)打开 开发环境搭建 系统开发及运行环境 JDK安装尽量遵循原项目的配置,在Oracle官网下载JDK11需注册Oracle账户,较麻烦。 在https://jdk.java.net/archive/找到11 GA (build 11+28)下载Windows版本的压缩…