如何修改Windows批处理脚本实现多时段差异化用户问候
Windows批处理分时段问候脚本修改方案
该需求可直接通过扩展原有批处理的多分支判断逻辑实现,修改后的完整代码如下:
@echo off setlocal enabledelayedexpansion :: 提取当前时间的小时部分并转换为纯数值 for /f "delims=:" %%A in ("%time%") do ( set "hour=%%A" :: 处理10点前小时前的前导空格问题,避免判断异常 set /a hour=1!hour!-100 :: 按时间区间匹配问候语 if !hour! geq 6 if !hour! lss 12 ( echo Good Morning %username% ) else if !hour! geq 12 if !hour! lss 18 ( echo Good Afternoon %username% ) else if !hour! geq 18 if !hour! lss 20 ( echo Good Evening %username% ) else ( echo Shouldn't you be in bed %username%? ) ) endlocal
逻辑说明
- 新增延迟变量开启配置,解决代码块内变量实时读取的问题
- 新增小时数值格式化逻辑,适配Windows系统10点前时间前补空格的格式特性,避免判断逻辑报错
- 按需求设定的四个时间区间做逐层判断,匹配对应区间后输出对应问候语
- 所有问候语完全匹配规则要求,不需要额外调整参数即可直接运行
内容的提问来源于stack exchange,提问作者Bri
相关产品推荐
相关产品推荐

