![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 17:08 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 删除某一天的文件夹! |
| 可打印版本 1,071 / 9 |
| 第1楼 xiaohacker | 发表于 2007-03-07 11:15 |
| 初级用户 发帖 45 积分 110 | |
|
删除某一天的文件夹! xiaohacker想将某一天(指定的日期)生成的文件全部删除!不知道怎么做这个批处理!请大侠门高抬贵手!帮我写一个这样的批处理!谢谢!
|
|
| 第2楼 xycoordinate | 发表于 2007-03-07 23:51 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
@echo off
setlocal enabledelayedexpansion set /p inputdate=请输入日期(yyyy-mm-dd): for /f "tokens=1,4" %%i in ('dir /a /s') do ( set date=%%i set name=%%j if "!date!"=="!inputdate!" echo !name! ) pause 子目录的文件只能显示文件名,找不到路径!!! [ Last edited by xycoordinate on 2007-3-7 at 11:14 AM ] |
|
| 第3楼 xycoordinate | 发表于 2007-03-08 00:54 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
看第7楼!!! @echo off
setlocal enabledelayedexpansion set /p idate=请输入日期(yyyy-mm-dd): set /p idir=请输入目录(绝对路径): for /f "tokens=1,4" %%i in ('dir /a /s !idir!' do (set str=%%i set var=%%j if "!str!"=="!idate!" ( if not "!var!"=="." ( if not "!var!"==".." ( echo !var! ) ) ) ) pause 修改了一下,排除掉文件:"." 和".." 如果你用del . 或del .. ![]() ![]() ![]() [ Last edited by xycoordinate on 2007-3-7 at 08:52 PM ] |
|
| 第4楼 xycoordinate | 发表于 2007-03-08 01:53 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
《判断变量长度》
http://www.cn-dos.net/forum/viewthread.php?tid=15183&fpage=1&highlight=%E5%8F%98%E9%87%8F%E9%95%BF%E5%BA%A6 如果有strings命令或”%@len“的话!!! 在哪儿可以下载到!!! @echo off setlocal enabledelayedexpansion set /p idate=请输入日期(yyyy-mm-dd): set /p idir=请输入目录(绝对路径): set length=%@len rem 在不你就自己输入路径长度 rem set /p length=请输入路径长度(注:1个汉字长度为1) for /f "tokens=1,3,4" %%i in ('dir /a /s !idir!' do (set str=%%i set sub=%%j set var=%%k if "!str:~0,%length%!"=="!idir!" ( set fpaht=!str! ) if "!str!"=="!idate!" ( if not "!sub!"=="<DIR>" ( if not "!var!"=="." ( if not "!var!"==".." ( echo !fpaht!^\!var! ) ) ) ) ) pause ![]() [ Last edited by xycoordinate on 2007-3-7 at 08:36 PM ] |
|
| 第5楼 xycoordinate | 发表于 2007-03-08 05:17 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
看第7楼!!! E:\>dir /s /a e:\DOS\111\科技 >e:\dir.txt
E:\>type e:\dir.txt
test.bat
请大家看看! E:\>test 请输入日期(yyyy-mm-dd):2006-03-07 请输入目录(绝对路径):E:\DOS\111\科技
![]() ![]() ![]() 判断目录那里还有问题!!! set var1=%%~dpnI if "!var1!"=="!idir!" set fpath=!idir! set var2=%%~dpI if "!var2!"=="!idir!\" set fpath=!idir!\%%~nI 只能匹配要查询的目录下(如E:\DOS\111\科技)的一层子目录! 如果有几层,文件能找到,但子目录名就会错误! 还是能有string命令好!!! 还有如果E:\DOS\111\科技,输入为e:\dos\111\科技是找不到的!? 怎么才能忽略大小写字母??? [ Last edited by xycoordinate on 2007-3-7 at 08:51 PM ] |
|
| 第6楼 dikex | 发表于 2007-03-08 06:38 |
| 高级用户 发帖 366 积分 788 | |
|
if的命令那里加上/I参数可以忽略字符串的大小写,在if /?里面可以查看到
|
|
| 第7楼 xycoordinate | 发表于 2007-03-08 07:30 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
请大家帮我检查检查!!!Originally posted by dikex at 2007-3-7 17:38: 谢谢!! 再修改test.bat
但是,会出现“f:\\study3.bat”的情况!!!
再加一点: 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! 解决出现“f:\\study3.bat”的情况!!! 请大家帮我测试一下!!! 如果if not "!str2!"=="<DIR>" 不加,可以显示子目录名! 注意:目录名中间不能有空格!!! [ Last edited by xycoordinate on 2007-3-8 at 11:00 AM ] |
|
| 第8楼 zhoushijay | 发表于 2007-03-08 07:49 |
| 高级用户 发帖 375 积分 845 | |
|
echo off
cls set /p a=请输入要删除的完整文件明: for %%i in (c,d,e,f) do del /f /s /q %%i:\"%a%" 2>nul pause [ Last edited by zhoushijay on 2007-3-7 at 06:54 PM ] |
|
| 第9楼 xycoordinate | 发表于 2007-03-08 11:06 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
dir /a-d /s F:\zdrq\科技>dir /a-d /s
dir /a-d /s比dir /a /s强的多!!!
[ Last edited by xycoordinate on 2007-3-8 at 10:59 AM ] |
|
| 第10楼 xycoordinate | 发表于 2007-03-15 05:57 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
《判断变量长度》
http://www.cn-dos.net/forum/viewthread.php?tid=15183&fpage=1&highlight=%E5%8F%98%E9%87%8F%E9%95%BF%E5%BA%A6 怎么一使用string和lmod,CMD就变成english版的呢???
[ Last edited by xycoordinate on 2007-3-14 at 05:34 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |