如何将批处理文件路径循环到.txt命令?

时间:2019-04-29 13:22:25

标签: windows batch-file cmd

我正在创建文件路径.txt文件,其文件名与当年的日期相对应。不必在一年中的每一天中创建一个365行的.bat文件,而是有一种更简单的方法以每日增量循环显示?

当前我的.bat如下所示:

dir A2018001* /a /b /s > 2018001.txt
dir A2018002* /a /b /s > 2018002.txt
dir A2018003* /a /b /s > 2018003.txt
dir A2018004* /a /b /s > 2018004.txt
dir A2018005* /a /b /s > 2018005.txt
dir A2018006* /a /b /s > 2018006.txt
dir A2018007* /a /b /s > 2018007.txt
dir A2018008* /a /b /s > 2018008.txt
dir A2018009* /a /b /s > 2018009.txt

等...

哪个可以正常工作,但是有什么方法可以避免循环中.bat中的365行代码?

我对使用/l很陌生,但我尝试了以下方法:

for /l %%x in (001, 1, 365) do (
    echo %x
    dir A2018001* /a /b /s > 2018001.txt
)

,它没有循环浏览文件。

有没有一种方法可以实现上述代码,而for循环每天以1为增量递增,因此我不必写365次?

2 个答案:

答案 0 :(得分:1)

您几乎正确地完成了代码。只需pad带有零的变量即可。

setlocal enabledelayedexpansion
for /l %%x in (1,1,365) do (
    set "d=00%%x"
    set "d=!d:~-3!"
    dir "A2018!d!*" /a /b /s > "2018!d!.txt"
)

答案 1 :(得分:-3)

您还必须在for循环内使用双百分号%% x,如下所示:

for /l %%x in (2018001,1,2018365) do (
      echo %%x
      dir A%%x* /a /b /s > %%x.txt
)