![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 09:48 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 全盘查找指定特性的文件 |
| 可打印版本 2,169 / 18 |
| 第1楼 Mxark | 发表于 2007-11-19 19:35 |
| 初级用户 发帖 30 积分 64 | |
|
全盘查找指定特性的文件 请教各位:
全盘查找 大小为:18.1 MB (19,073,327 字节) 修改日期: 2007年11月16日 星期五, 21:22:24的所有文件(*.exe,*.dll,*.txt ...),并将它们复制到d:\new\下. 或者 大小为:18.1 MB (19,073,327 字节) 修改日期: 2007年11月16日 21:22:24的所有*.rar文件,并将它们复制到d:\rar下. 急待解决,那位知道请回帖谢谢~~ [ Last edited by Mxark on 2007-11-23 at 07:24 PM ] |
|
| 第2楼 Mxark | 发表于 2007-11-20 07:52 |
| 初级用户 发帖 30 积分 64 | |
|
急待解决,那位知道请回帖谢谢~~
|
|
| 第3楼 fastslz | 发表于 2007-11-20 08:12 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
嘿嘿,等版主来吧~
|
|
| 第4楼 everest79 | 发表于 2007-11-20 09:52 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
for /f "delims=" %i in ('dir /a-d /s /b *.exe,*.dll,*.txt') do (
if "%~ti" == "2007-11-16 21:22" (set/a 1/^(19073327-%~z^i) 2>nul||echo %i) ) |
|
| 第5楼 ansipeter | 发表于 2007-11-20 11:15 |
| 中级用户 发帖 130 积分 269 | |
|
看来这等问题只能等版主前来解决了!....慢慢等吧!唉...............
|
|
| 第6楼 lxmxn | 发表于 2007-11-20 13:36 |
| 版主 发帖 4,938 积分 11,386 | |
|
先把标题改了再说。。。
|
|
| 第7楼 Mxark | 发表于 2007-11-20 15:58 |
| 初级用户 发帖 30 积分 64 | |
|
首先谢谢everest79兄的回复,但是好象没有达到目的...
|
|
| 第8楼 everest79 | 发表于 2007-11-20 17:04 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
那还不对了?
|
|
| 第9楼 terse | 发表于 2007-11-20 18:18 |
| 银牌会员 发帖 946 积分 2,404 | |
|
我也添加一个WMIC 行不? [ Last edited by terse on 2007-11-21 at 12:18 AM ] |
|
| 第10楼 fastslz | 发表于 2007-11-20 22:55 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
WMIC
不需要WMIC [ Last edited by fastslz on 2007-11-20 at 10:57 PM ] |
|
| 第11楼 Mxark | 发表于 2007-11-21 07:00 |
| 初级用户 发帖 30 积分 64 | |
|
首先谢谢各位的解答,terse的第一个代码只有在文件和批处理在一个文件夹下才达到目的,没有实现全盘搜索.第二个可以!fastslz的也行.
万分感激~~ terse、fastslz的代码都实现了rar文件的搜索,但还有个问题,怎么把其他符合要求的文件搜索到并复制呢?,比如还有exe文件,txt(如果存在的话)文件... [ Last edited by Mxark on 2007-11-21 at 07:05 AM ] |
|
| 第12楼 fastslz | 发表于 2007-11-21 08:50 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
@echo off
for /f "skip=2 tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get DeviceID^,FileSystem^,Description /format:csv^|findstr /i /v "英寸 CD-ROM 移动"') do ( for /f "delims=" %%a in ('dir /s /b /a-d %%i\*.rar') do ( if "%%~za"=="19073327" ( dir /a-d /ta %%a|find "2007-11-16 21:22" if "%errorlevel%"=="0" copy /y "%%a" d:\new\ ) ) ) pause *.rar是扩展名,可以改成*.exe ,*.txt,如果所有文件可以用 *.* 19073327是文件大小 2007-11-16 21:22是修改日期,注意日期和时间中间是2个空格 先判断文件大小再判断修改日期符合常规搜索 |
|
| 第13楼 laotou | 发表于 2007-11-21 08:59 |
| 初级用户 发帖 12 积分 25 | |
|
曾经用vb做过,用批处理也可以做?以前,从没有敢想过。
|
|
| 第14楼 fastslz | 发表于 2007-11-21 09:13 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
改良下能显示匹配大小未匹配时间的文件
@echo off for /f "skip=2 tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get DeviceID^,FileSystem^,Description /format:csv^|findstr /i /v "英寸 CD-ROM 移动"') do ( for /f "delims=" %%a in ('dir /s /b /a-d %%i\*.rar 2^>nul') do ( if "%%~za"=="19073327" ( dir /a-d /ta %%a|find "2007-11-16 21:22" if "%errorlevel%"=="0" copy /y "%%a" d:\new\ if "%errorlevel%"=="1" echo %%a 匹配大小,但修改日期未匹配! ) ) ) pause |
|
| 第15楼 Mxark | 发表于 2007-11-21 11:03 |
| 初级用户 发帖 30 积分 64 | |
|
谢谢fastslz的解答,我测试了已回复的代码,但都还存在一个问题:
不支持中文目录,我在F:\软件\soft.rar 大小19073327 时间:19073327 运行后在d:\new\下并没有发现soft.rar,于是将soft.rar 复制到F\tt\下并更名为: newsoft.rar,运行后在d:\new\下并没有发现newsoft.rar~~ 怎么支持中文目录搜索呢? [ Last edited by Mxark on 2007-11-21 at 11:04 AM ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |