Board logo

标题: 【已解决】批处理提取全盘指定文件类型出错 [打印本页]

作者: woxingwoshu007    时间: 2009-4-13 17:36     标题: 【已解决】批处理提取全盘指定文件类型出错

大虾们,急救:以下的这个批处理是提取全盘中的mp3的文件并把内容写入music.txt

1:
@echo off
for %%a in (c d e f) do for /r  %%a:\  %%b in(*.mp3) do echo %%b
>music.txt


那里出错了?
如果把写成:
2:
@echo off
for /r f:\ %%i in (*.mp3) do echo %%i>>music.txt
pause>nul
就可以:

帮忙解决下1中的问题

[ 本帖最后由 woxingwoshu007 于 2009-4-15 11:57 编辑 ]
作者: tireless    时间: 2009-4-13 19:02

改成:

for %%a in (c d e f) do %%a:&for /r %%b in(*.mp3) do echo %%b

或者: dir /s/b/a c:\*.mp3 d:\*.mp3 e:\*.mp3 f:\*.mp3 > music.txt
作者: woxingwoshu007    时间: 2009-4-13 22:10     标题: 回复 2楼 的帖子

for %%a in (c d e f) do %%a:&for /r %%b in(*.mp3) do echo %%b
我试过了不行的..求助ing
作者: lxzzr    时间: 2009-4-13 22:17     标题: 回复 3楼 的帖子

  1. @echo off
  2. for /f "usebackq skip=2 delims=" %%a in (
  3.        `"wmic logicaldisk where 'drivetype=3' get name"`
  4.        ) do (
  5.        call :sub %%a
  6. )
  7. exit
  8. :sub
  9. for /r %1\ %%a in (*.mp3) do echo %%a>>music.txt
  10. goto :eof
复制代码

作者: Batcher    时间: 2009-4-13 22:19

  1. @echo off
  2. (for %%a in (c d e f) do (
  3.   pushd %%a:\
  4.   for /r  %%b in (*.mp3) do (
  5.     echo %%b
  6.   )
  7.   popd
  8. ))>music.txt
复制代码

作者: zqz0012005    时间: 2009-4-13 23:23

  1. wmic datafile where "Extension='mp3'" get Name
复制代码
cim_datafile类对有些文件无法找到,闻lxzzr兄对WMI颇有研究,不知是否知悉确切原因。
作者: lxzzr    时间: 2009-4-14 07:53     标题: 回复 6楼 的帖子

zqz0012005兄能举个例子来看下吗,说句实话,这个我倒是没遇到过,我这边也测试了很多的例子都是正常的.
作者: woxingwoshu007    时间: 2009-4-14 12:34     标题: 回复 4楼 的帖子

`"wmic logicaldisk where 'drivetype=3' get name"`
新手..苦闷学了一个多月了.还是看不明白.麻烦解释
thanks
作者: woxingwoshu007    时间: 2009-4-14 12:53     标题: 回复 5楼 的帖子

嗯,,确实不同凡响,你的代码确实简单实用..在原来的基础上加以改进:只提取全盘中的mp3名字,不需要显示路径??
作者: Batcher    时间: 2009-4-14 13:31     标题: 回复 9楼 的帖子

有些系统不支持WMIC,不存在那个代码更实用的问题,根据自己的需要,选择最合适的即可。
参考:批处理全盘搜索指定文件获取其完整路径
http://bbs.bathome.net/thread-3465-1-1.html
作者: woxingwoshu007    时间: 2009-4-14 22:09     标题: 回复 10楼 的帖子

谢谢,各位朋友的帮助..我自己电脑上mp3文件通过以下批处理已经处理完毕了:
  @echo off
(for %%a in (c d e f) do (
  pushd %%a:\
  for /r  %%b in (*.mp3) do (
    echo %%b
  )
  popd
))>1.txt
for /f  "tokens=4* delims=\"   %%i in (1.txt) do echo %%i   %%j >>music.txt

pause>nul




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2