gpt4 book ai didi

batch-file - 从给定的 for/L 参数批处理输出日期列表

转载 作者:行者123 更新时间:2023-12-03 10:01:13 24 4
gpt4 key购买 nike

请考虑以下代码:

@echo off
setlocal enabledelayedexpansion

FOR /L %%G IN (0,1,19) DO (
set /a "Dday=%_day%+%%G"

if %mth% equ sml (
if !Dday! gtr 30 (
set "_day=1"
set /a "_month+=1"
)
if !_month! gtr 12 (
set "_month=1"
set /a "_year+=1"
)

) else (
if %mth% equ big (
if !Dday! gtr 31 (
set "_day=1"
set /a "_month+=1"
)
if !_month! gtr 12 (
set "_month=1"
set /a "_year+=1"
)
)
)

echo !Dday!/!_month!/!_year!.txt
)

考虑以下日期:20/04/2016

_day = 20; _month = 04_year = 2016mth=sml;

我的输出是这样的:

enter image description here

它将天从 30 增加而不是更改为 1。我能知道我做错了什么吗?请指教。谢谢

最佳答案

这个脚本有两个问题。首先正如@SomethignDark 指出的那样,您需要使用 !_day! 而不是 %_day%

其次当Dday大于30时,%%G为12。所以你的表达式!_day!+%%G会是 13 而不是 1。

所以你需要类似的东西

...
FOR /L %%G IN (0,1,19) DO (

set /a "Dday=!_day!+%%G"

if !_day! equ 1 set /a "Dday=!_day!+%%G-12"
...

关于batch-file - 从给定的 for/L 参数批处理输出日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com