[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [解决]:全盘搜索取出指定后缀文件名以及所在文件夹路径

bat达到的效果是

一个文件夹里面有指定后缀的文件(也有其他的) ,
也有子文件夹,而子文件夹里面也有指定后缀的文件(也有其他的)

判断如果次文件夹里面有指定后缀的文件,则输入
格式为

--------文件夹--------
文件
文件
--子文件夹1--
文件
文件
--子文件夹2--
文件
文件


我的目的是, 我有一个文件夹里面有很多歌曲文件,(有很多格式的,只要获取mp3、wma)
然后这个文件夹里面还有 以歌手的名字命名的子文件夹,
(可能有空文件夹,或者文件夹里面没有指定后缀的歌曲文件)
子文件夹里面则是歌手所属的歌曲
输入的格式如上

[ 本帖最后由 a794685135 于 2008-10-18 16:40 编辑 ]

匹配2个关键字,可以用管道,先匹配第一个,然后通过管道传递给后面的命令再匹配第二个。
  1. echo "1st 2nd 3rd 4th"|find "1st"|find "3rd"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. set /p ppp=请输入要查找的后缀文件(格式如jpg或mp3):
  2. FOR %%a in (c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: s: y: z:) do dir /s/b %%a\*.%ppp%>>list.txt
  3. start list.txt
复制代码

TOP

回复 3楼 的帖子

全盘搜索的时候,用for /r会快一些吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

2楼的那方法行不通啊,比如我一个目录里面有一个mp3,还有一个wma
dir |find "mp3" |find "wma"
在找到mp3后就停住了,


3楼的能不能完善下

就是如果在test目录里面发现了有mp3后缀的文件,
就首先把test目录名输出到txt,然后再在txt里面输出mp3的文件名(不要后缀)
比如C:\test里面有3个歌曲,分别为 两只老虎.mp3 两只蝴蝶.mp3 两只乌龟.wma
输出后txt的格式:

-----test-----
两只老虎
两只蝴蝶
两只乌龟

[ 本帖最后由 a794685135 于 2008-10-18 15:36 编辑 ]

TOP

回复 5楼 的帖子

  1. dir|findstr "txt log"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

经过QQ上的详聊才知道了楼主的真实意图,代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. echo -------c:\test------->list.txt
  3. for /f "delims=" %%a in ('dir /b c:\test') do (
  4.     for %%b in (.mp3 .wma) do (
  5.         if /i "%%~xa" equ "%%b" echo %%~na>>list.txt
  6.     )
  7. )
  8. for /f "delims=" %%a in ('dir /s /ad /b c:\test') do (
  9.     for /f "delims=" %%b in ('dir /b "%%a"') do (
  10.         for %%c in (.mp3 .wma) do (
  11.             if /i "%%~xb" equ "%%c" set /a n+=1&set "_!n!=%%~nb"
  12.         )
  13.     )
  14.     if !n! neq 0 (
  15.        echo -------%%a------->>list.txt
  16.        for /l %%d in (1,1,!n!) do call,echo %%_!n!%%>>list.txt
  17.        set "n=0"
  18.     )
  19. )
  20. start list.txt
复制代码

[ 本帖最后由 batman 于 2008-10-18 16:30 编辑 ]
***共同提高***

TOP

实验环境如下
C:\test
│  1.bat
│  list.txt
│  复件 (2) 新建 文本文档.txt
│  复件 (2) 无语.mp3
│  复件 (3) 无语.wma
│  复件 新建 文本文档.txt
│  无语.mp3
│  无语.wma

├─123
│      复件 (3) 新建 文本文档.txt
│      复件 (4) 无语.mp3
│      复件 (5) 无语.wma
│      新建 文本文档.txt

└─新建文件夹
        复件 (4) 新建 文本文档.txt
        复件 (5) 新建 文本文档.txt

以上是文件夹的 内容
以下是需要得到的结果,得到的文件是mp3和wma的文件名

-------c:\test-------
无语
无语
复件 (2) 崩溃
复件 (3) 崩溃
-------c:\test\123-------
复件 (4) 崩溃
复件 (5) 崩溃

TOP

返回列表