![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 17:38 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助](难题)[讨论](现解决)查找多个文件.bat |
| 可打印版本 1,431 / 8 |
| 第1楼 dosz | 发表于 2009-04-12 10:38 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
|
[求助](难题)[讨论](现解决)查找多个文件.bat 在
深度论坛 liuss 给我回复个帖子查找多个文件,可文件多处出错,希望在此得到高手相助。 http://os.deepin.org/read.php?tid=1052540&page=1&toread=1
[ Last edited by dosz on 2009-4-18 at 09:19 ] |
|
| 第2楼 netbenton | 发表于 2009-04-12 11:36 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
dir命令支持以下操作:
dir [路径] [多个文件列表] 如: for /f "delims=" %%a in ('dir /s/b d:\*.bat *.txt *.mp3') do echo %%a 你自己试试看。 |
|
| 第3楼 ZJHJ | 发表于 2009-04-13 01:13 |
| 高级用户 发帖 374 积分 609 | |
|
@echo off
::wangweiqq251485609 @echo 按清单查找程序或文件路径,请分行填入>t.txt call t.txt cd.>lj.txt for %%f in (C D E F G H I J K) do ( for /f %%i in (t.txt) do ( dir /a /b /s %%f:\%%i>>lj.txt ) ) |
|
| 第4楼 wuwei1dai | 发表于 2009-04-13 01:56 |
| 初级用户 发帖 22 积分 44 来自 广安 | |
|
给list.txt加上路径就没问题了
@echo off&setlocal enabledelayedexpansion title 文件查找程序 color 70 echo 说明: echo 查找多个文件可以使用通配符,如输入:*.mp3 可查找所有的 MP3 文件, echo 或输入:*.mp3 *.wma *.wav 可查找所有的 mp3、wma、wav 文件等。 echo 在要求输入分区名称时,输入:C D(或 C: D:)表示只搜索C盘和D盘。 echo. set/p filename=请输入要查找的文件名: if "%filename%"=="" exit echo. set/p dri=请输入你要搜索的分区名称(直接回车表示全盘搜索): if "%dri%"=="" set dri=C D E F G H I J K L M N O P Q R S T U V W X Y Z echo %date% %time% >c:\list.txt echo ----------------------------- >>c:\list.txt for %%a in (%dri%) do ( if exist %%a:\nul ( cd/d %%a:\ cls&echo 正在搜索 %%a: 盘下的 !filename! ... dir /b/s/a !filename! >>c:\list.txt ) )2>nul cd/d %~dp0 for /f "delims=" %%a in (c:\list.txt) do set/a n+=1 set/a n=%n%-2 echo ============================= >>c:\list.txt echo 文件总数为:%n% >>c:\list.txt cls echo 搜索完成,文件总数为:%n% ping 127.1 -n ^5>nul start c:\list.txt |
|
| 第5楼 dosz | 发表于 2009-04-17 11:22 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
Originally posted by wuwei1dai at 2009-4-13 01:56: 给list.txt加上路径就没问题了 的确如此,谢谢广安的wuwei1dai朋友。 这个正合我意,我本来就要把它建在%temp%文件夹下。 echo. echo ====== 为你找到: "%filename%" 文件总数为:%n% , echo. echo 并保存到“%temp%\%sheet%.txt”文件中 ====== 深度论坛的liuss说:他的代码经过多次测试成功。 dir /b/s/a- !filename! >>%~dp0\list.txt 此句是把结果定向到批处理本身所在目录下的文本中,因为上两行使用了 cd/d %%a:\ 改变了当前目录。 按理说没问题啊,你给我解释一下吧。
|
|
| 第6楼 netbenton | 发表于 2009-04-17 12:22 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
哦,原来这样,偶会错意了。I am sorry!
|
|
| 第7楼 dosz | 发表于 2009-04-17 23:46 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
Originally posted by dosz at 2009-4-17 11:22: 如果批处理所在路径名称存在空格,应补上双引号: dir /b/s/a !filename! >>"%temp%\%filelist%.txt"
|
|
| 第8楼 wuwei1dai | 发表于 2009-04-18 01:25 |
| 初级用户 发帖 22 积分 44 来自 广安 | |
|
Originally posted by dosz at 2009-4-17 11:22:
深度论坛的liuss说:他的代码经过多次测试成功。 还是有缺陷 就是你说的路径中有空格就不行了 把dir /b/s/a- !filename! >>%~dp0\list.txt该成这样就可以了 dir /b/s/a- !filename! >>"%~dp0\list.txt" |
|
| 第9楼 dosz | 发表于 2009-04-18 09:15 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
|
re: wuwei1dai
是的,事实上,你的做法和他的做法不某而合。 liuss:如果批处理所在路径名称存在空格,应补上双引号: "%~dp0\list.txt" wuwei1dai:给list.txt加上路径就没问题了 一般地我多在桌面上测试 bat,而桌面路径则带空格 C:\Documents and Settings\Administrator\桌面 在此谢谢各位网友! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |