写一个获取前一天日期格式为20241008的bat脚本
时间: 2024-10-10 20:04:59 浏览: 73
在Windows批处理文件(.bat)中,你可以使用系统内置的命令`date`和一些算术运算来获取前一天的日期。下面是一个简单的示例,它会输出格式为"yyyyMMdd"的日期:
```batch
@echo off
setlocal enabledelayedexpansion
set today=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%
set /a yesterday=today - 1
set yesterday=!yesterday: =0!
echo !yesterday!
```
保存这个脚本到一个.bat文件,比如`get_previous_day.bat`,然后双击运行即可。
解释一下:
1. `@echo off` 关闭命令行的回显功能,让脚本看起来更简洁。
2. `setlocal enabledelayedexpansion` 开启变量的延迟扩展,允许我们在计算后的值上进行修改。
3. `%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%` 获取当前日期并按指定格式分割成年、月、日。
4. `set /a yesterday=today - 1` 计算昨天的日期(假设今天是`today`)。
5. `!yesterday: =0!` 将结果替换为空格,并转换为四位数格式(如果不足四位则补零)。
6. `echo !yesterday!` 输出前一天的日期。
相关问题
bat脚本获取前一天的日期
可以使用以下代码获取前一天的日期:
```
@echo off
setlocal enabledelayedexpansion
set "today=%date%"
set /a "day=1"
set "year=!today:~0,4!"
set "month=!today:~5,2!"
set "day=!today:~8,2!"
if %day% leq %day% set /a "month-=1"
if !month! equ 0 set /a "year-=1" & set "month=12"
if !month! equ 2 (
if !year! equ 0 (set /a "leap=1") else (
if !year! gtr 0 (
set /a "leap=!(year%%4) & (year%%100!=0 || year%%400==0)"
) else (
set /a "leap=((year+1)%%4==0)"
)
)
set /a "day=28+leap"
) else (
set /a "day=30+((month+month/8)%%2)"
)
if %day% lss 10 set "day=0!day!"
if !month! lss 10 set "month=0!month!"
set "yesterday=!year!!month!!day!"
echo %yesterday%
```
这段代码会获取当前日期,然后计算前一天的日期,并将其保存在变量 `yesterday` 中,最后输出。
bat脚本获取前一天的日期并创建文件夹
您好,可以使用以下代码获取前一天的日期并创建文件夹:
```
@echo off
setlocal enabledelayedexpansion
rem 获取前一天的日期
set /a day=%date:~8,2%-1
set /a month=%date:~5,2%
set /a year=%date:~0,4%
if %day% equ 0 (
set /a month=%month%-1
if %month% equ 0 (
set /a year=%year%-1
set month=12
)
if %month% equ 4 (
set /a day=30
) else if %month% equ 6 (
set /a day=30
) else if %month% equ 9 (
set /a day=30
) else if %month% equ 11 (
set /a day=30
) else if %month% equ 2 (
if %year% equ 0 (
set /a day=29
) else if %year% mod 4 equ 0 and %year% mod 100 neq 0 or %year% mod 400 equ 0 (
set /a day=29
) else (
set /a day=28
)
) else (
set /a day=31
)
)
if %month% lss 10 set month=0%month%
if %day% lss 10 set day=0%day%
set yesterday=%year%%month%%day%
rem 创建文件夹
mkdir %yesterday%
```
这段代码可以获取前一天的日期,并创建一个以日期为名称的文件夹。
阅读全文