xiaohacker想将某一天(指定的日期)生成的文件全部删除!不知道怎么做这个批处理!请大侠门高抬贵手!帮我写一个这样的批处理!谢谢!
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
do (


do (
驱动器 E 中的卷没有标签。
卷的序列号是 70AE-C2D5
e:\DOS\111\科技 的目录
2006-03-07 13:10 <DIR> .
2006-03-07 13:10 <DIR> ..
2006-03-07 10:54 3 111.txt
2007-02-05 11:24 <DIR> 123
2006-03-07 10:54 3 222.txt
2007-02-04 13:15 <DIR> abc
2006-03-07 12:37 <DIR> 夏天
2 个文件 6 字节
e:\DOS\111\科技\123 的目录
2007-01-02 11:24 <DIR> .
2007-01-02 11:24 <DIR> ..
2006-03-07 10:54 3 a.txt
2006-03-07 10:54 3 b.txt
2 个文件 6 字节
e:\DOS\111\科技\abc 的目录
2007-02-06 13:15 <DIR> .
2007-02-06 13:15 <DIR> ..
2007-02-06 12:16 5 1.txt
2006-03-07 10:54 3 2.txt
2 个文件 8 字节
e:\DOS\111\科技\夏天 的目录
2006-03-07 12:37 <DIR> .
2006-03-07 12:37 <DIR> ..
2006-03-07 12:37 3 x.txt
2006-03-07 12:38 8 y.txt
2 个文件 11 字节
所列文件总数:
8 个文件 31 字节
11 个目录 10,531,729,408 可用字节
@echo off
setlocal enabledelayedexpansion
set /p idate=请输入日期(yyyy-mm-dd):
set /p idir=请输入目录(绝对路径):
for /f "tokens=1,3,4" %%I in ('dir /a /s !idir!'do (
set var1=%%~dpnI
if "!var1!"=="!idir!" set fpath=!idir!
set var2=%%~dpI
if "!var2!"=="!idir!\" set fpath=!idir!\%%~nI
set str1=%%I
set str2=%%J
set str3=%%K
if "!str1!"=="!idate!" (
if not "!str2!"=="<DIR>" (
if not "!str3!"=="." (
if not "!str3!"==".." (
echo !fpath!^\!str3!
)
)
)
)
)
E:\DOS\111\科技\111.txt
E:\DOS\111\科技\222.txt
E:\DOS\111\科技\123\a.txt
E:\DOS\111\科技\123\b.txt
E:\DOS\111\科技\abc\2.txt
E:\DOS\111\科技\夏天\x.txt
E:\DOS\111\科技\夏天\y.txt



Originally posted by dikex at 2007-3-7 17:38:
if的命令那里加上/I参数可以忽略字符串的大小写,在if /?里面可以查看到
@echo off
setlocal enabledelayedexpansion
set /p idate=请输入日期(yyyy-mm-dd):
set /p idir=请输入目录(绝对路径):
for /f "tokens=1,3,4" %%I in ('dir /a /s !idir!') do (
set str1=%%I
set str2=%%J
set str3=%%K
if /i "!str1!"=="!idir!" set fpath=!idir!
rem 绝对路径肯定有盘符!!!
if /i "!str1:~0,2!"=="!idir:~0,2!" set fpath=!str1!
if "!str1!"=="!idate!" (
if not "!str2!"=="<DIR>" (
if not "!str3!"=="." (
if not "!str3!"==".." (
set fname=!fpath!\!str3!
echo !fname!
)
)
)
)
)
请输入日期(yyyy-mm-dd):2007-03-07
请输入目录(绝对路径):f:\
f:\\指定日期文件.rar
f:\\study3.bat
f:\\dir.txt
f:\\study.bat
f:\\study2.bat
f:\Recycled\INFO2
f:\Recycled\Df1.bat
f:\Recycled\Df2.bat
f:\zdrq\1.txt
f:\zdrq\path.txt
f:\zdrq\study2.bat
f:\zdrq\test.bat
f:\zdrq\test5.bat
f:\zdrq\study3.bat
f:\zdrq\dir.txt
f:\zdrq\科技\夏天\path.txt
f:\zdrq\科技\夏天\study.txt
......
驱动器 F 中的卷没有标签。
卷的序列号是 9487-0809
F:\zdrq\科技 的目录
2006-03-07 10:54 3 111.txt
2006-03-07 10:54 3 222.txt
2007-03-07 21:48 175 test.bat
2004-08-23 16:00 470,528 cmd.exe
2007-03-07 21:52 203 test1.bat
5 个文件 470,912 字节
F:\zdrq\科技\夏天 的目录
2007-03-07 12:31 350 path.txt
2007-03-07 15:25 112 study.txt
2006-03-07 12:38 3 x.txt
2006-03-07 12:38 8 y.txt
4 个文件 473 字节
。。。。。。
@echo off
setlocal enabledelayedexpansion
rem set /p idate=请输入日期(yyyy-mm-dd):
rem set /p idir=请输入目录(绝对路径):
echo 在%idir%目录中,符合%idate%的文件:
for /f "tokens=1,3,4" %%I in ('dir /a-d /s !idir!') do (
set str1=%%I
set str2=%%J
set str3=%%K
if /i "!str1!"=="!idir!" set fpath=!idir!
if /i "!str1:~0,2!"=="!idir:~0,2!" set fpath=!str1!
if "!fpath:~-1!"=="\" set fpath=!fpath:~0,-1!
if "!str1!"=="!idate!" (
set fname=!fpath!\!str3!
echo !fname!
)
)
@echo off
setlocal enabledelayedexpansion
set /p idate=请输入日期(yyyy-mm-dd):
set /p idir=请输入目录(绝对路径):
strings length %idir% |lmod /L set /a length=-1 >tmp.bat
call tmp.bat
for /f "tokens=1,3,4" %%i in ('dir /a /s !idir!') do (
set str=%%i
set sub=%%j
set var=%%k
if "!sub:~0,%length%!"=="!idir!" (
set fpaht=!sub!
)
if "!str!"=="!idate!" (
if not "!sub!"=="<DIR>" (
if not "!var!"=="." (
if not "!var!"==".." (
echo !fpaht!^\!var!
)
)
)
)
)
pause