前言全局说明
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 ( 六)