批处理批量删除制定多个文件夹下多个文件,文件夹有一定编号,里面文件以日期命名,该如何实现

详细描述:我工作中有一个需求,D盘output文件夹内有这样一批文件,如第一张图所示这里只显示了16个文件,实际上k开头的文件有1000多个,从k0019开始到k1023。每个文件夹里都有一些以日期命名的文件夹,如第二章图所示这些日期文件内又包含很多文件,如txt,doc,excle等等我的需求是,批处理输入命令,如k0023 k1021 20161123 20161219从而删除从k0023 到k1021 文件中20161123 到20161219所有文件夹以及里面的文件,而命令范围之外的不要删除,该如何实现。因为涉及日期变化和嵌套循环,我写了很多,要么删除不了,要么把整个文件删除了,不敢去用,万一删错了就麻烦大了求助,万分感谢

@echo off
set /p input=请输入要删除的文件名(分号隔开;): 
set input=%input:k=1%
set "folder=test"
for /f "tokens=1-4 delims=;" %%1 in ("%input%")do set /a d1=%%1,d2=%%2,f1=%%3,f2=%%4
(for /l %%1 in (%d1% 1 %d2%)do (
set d=k%%1
call set d=%%d:k1=k%%
for /l %%2 in (%f1% 1 %f2%)do (
call set #del_%%d%%\%%2=%~dp0%folder%\%%d%%\%%2 & call echo 要删除的文件 -- %~dp0%folder%\%%d%%\%%2
)
))>过目.txt
start "" "过目.txt"
set /p input=确认要删除吗?:[Y/回复其他退出]
if /i %input%==y (
for /f "tokens=2 delims==" %%1 in ('set #del_')do (
if exist "%%1" (
rd /s /q %%1
md %%1
)else (
echo 文件夹不存在 -- %%1
)
)
)else (
exit
)

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答