我正在创建文件路径.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次?
答案 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
)