Windows 批处理文件 - 循环遍历日期范围数组,然后拆分每个项目

Posted

技术标签:

【中文标题】Windows 批处理文件 - 循环遍历日期范围数组,然后拆分每个项目【英文标题】:Windows batch file - Loop through array of date range then split each item 【发布时间】:2016-11-03 17:23:30 【问题描述】:

我想从数组中遍历特定的日期范围。 每个项目都有由空格分隔的开始日期和结束日期。 下面是我的代码,但我无法正确打印拆分部分。它只打印 string1=

我错过了什么?提前致谢。

SET dates[0]=01/01/2016 02/01/2016
SET dates[1]=03/01/2016 04/01/2016

set "x=0"

:SymLoop
if defined dates[%x%] (
    rem echo !dates[%x%]!
    set "str=!dates[%x%]!"

    echo !str!  

    set "string1=%str: =" & set "string2=%"

    echo string1=%string1%
    echo string1=%string2%

    set /a "x+=1"
    GOTO :SymLoop
)

【问题讨论】:

在添加标签之前阅读标签信息!我很确定标签 dos 和 ms-dos 在这里不适用(除非你真的在使用 1980 年代的这个操作系统)! @aschipfl 授予。 【参考方案1】:

您正在使用延迟扩展(我猜您的原始代码中有setlocal enabledelayedexpanion),但忘记了以下两行:

echo string1=%string1%
echo string1=%string2%

将它们更正为:

echo string1=!string1!
echo string1=!string2!

【讨论】:

以上是关于Windows 批处理文件 - 循环遍历日期范围数组,然后拆分每个项目的主要内容,如果未能解决你的问题,请参考以下文章

如何循环遍历日期范围?

以每月步骤循环遍历日期范围

Oracle SQL 循环遍历日期范围

SQL Server 2008 中的 While 循环遍历日期范围,然后插入

Python / Pandas:循环遍历数字列表

如何使用 Windows 批处理文件遍历文本文件中的每一行?