You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows批处理IF与ELSE IF用法及日期序数文件夹创建方案

Windows批处理:创建带序数后缀的日期文件夹 + IF/ELSE IF用法详解

没问题,我来帮你搞定这个批处理脚本,顺便把Windows批处理里IF和“ELSE IF”的用法讲明白~

一、先搞懂批处理里的IF与“ELSE IF”逻辑

Windows批处理没有原生的ELSE IF关键字,但咱们可以通过ELSE (IF ...)的嵌套写法实现多分支判断,语法上要注意这几点:

  • IF的条件和执行代码之间必须留空格
  • 当IF/ELSE后面跟着多行代码时,必须用括号()包裹,而且左括号要和IF/ELSE在同一行(换行写代码后再补右括号)
  • 数字比较要用EQU(等于)、NEQ(不等于)这类运算符,字符串比较用==

举个简单的分支判断例子:

@echo off
set "num=22"
IF %num% EQU 1 (
    echo 1st
) ELSE IF %num% EQU 2 (
    echo 2nd
) ELSE IF %num% EQU 3 (
    echo 3rd
) ELSE (
    echo %num%th
)

这里的ELSE IF本质是在ELSE的代码块里嵌套了一个IF语句,这是批处理实现多分支的标准写法。

二、满足你需求的完整批处理脚本

下面的脚本会自动获取当前日期,生成带序数后缀的文件夹名称,然后在当前目录创建该文件夹,还能避免不同地区日期格式不一致的问题:

@echo off
setlocal enabledelayedexpansion

:: 用WMIC获取统一格式的日、月、年,避免系统地区差异导致的%date%格式混乱
for /f "tokens=2 delims==" %%a in ('wmic Path Win32_LocalTime Get Day /Format:value') do set "day=%%a"
for /f "tokens=2 delims==" %%a in ('wmic Path Win32_LocalTime Get Month /Format:value') do set "month=%%a"
for /f "tokens=2 delims==" %%a in ('wmic Path Win32_LocalTime Get Year /Format:value') do set "year=%%a"

:: 将数字月份转换成英文缩写
set "month_abbr="
IF !month! EQU 1 set "month_abbr=Jan"
IF !month! EQU 2 set "month_abbr=Feb"
IF !month! EQU 3 set "month_abbr=Mar"
IF !month! EQU 4 set "month_abbr=Apr"
IF !month! EQU 5 set "month_abbr=May"
IF !month! EQU 6 set "month_abbr=Jun"
IF !month! EQU 7 set "month_abbr=Jul"
IF !month! EQU 8 set "month_abbr=Aug"
IF !month! EQU 9 set "month_abbr=Sep"
IF !month! EQU 10 set "month_abbr=Oct"
IF !month! EQU 11 set "month_abbr=Nov"
IF !month! EQU 12 set "month_abbr=Dec"

:: 判断日期的序数后缀
set "suffix="
IF !day! EQU 1 set "suffix=st"
ELSE IF !day! EQU 2 set "suffix=nd"
ELSE IF !day! EQU 3 set "suffix=rd"
ELSE IF !day! EQU 21 set "suffix=st"
ELSE IF !day! EQU 22 set "suffix=nd"
ELSE IF !day! EQU 23 set "suffix=rd"
ELSE set "suffix=th"

:: 拼接成最终的文件夹名称(比如1stJan2024、22ndFeb2024)
set "folder_name=!day!!suffix!!month_abbr!!year!"

:: 创建文件夹并提示
mkdir "!folder_name!"
echo 已成功创建文件夹:!folder_name!

endlocal

脚本细节说明:

  1. setlocal enabledelayedexpansion:启用延迟环境变量扩展,这样在循环和条件判断里能正常读取动态变化的变量(用!变量!代替%变量%)
  2. WMIC获取日期:避开了不同系统地区下%date%格式不一致的坑,保证能精准拿到日、月、年的数字值
  3. 序数后缀判断:覆盖了所有需要特殊后缀的日期(1、2、3、21、22、23),其余日期统一用th
  4. 月份缩写转换:完全匹配你要的“Jan”“Feb”这类格式,要是想用全称(比如January),直接修改对应赋值即可

三、使用方法

把上面的代码复制到记事本里,保存为CreateDateFolder.bat,双击运行就能在当前目录生成符合要求的日期文件夹啦~

内容的提问来源于stack exchange,提问作者sudheer T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:40:03