Board logo

标题: [文件操作] 批处理怎样搜索文件并将搜索结果复制到指定目录? [打印本页]

作者: lleon    时间: 2011-3-29 17:29     标题: 批处理怎样搜索文件并将搜索结果复制到指定目录?

我有一个文件夹,里面有5万左右单词的发音文件。希望有个批处理能把一个文本文件列出的单词的对应发音文件全部拷贝到指定目录下。
文本文件一行一个单词。
拷贝到目的目录的发音文件最好能够加个序号,序号值对应单词在文本文件的行号。
发音文件的名称是这样的:
z-单词--.wav
例如:
z-word--.wav
z-apple--.wav
先谢过了!
作者: 随风    时间: 2011-3-29 17:54

  1. @echo off
  2. set wjj=目标文件夹
  3. set var=你那5万发音文件路径
  4. if not exist "%wjj%\" md "%wjj%"
  5. for /f "delims=" %%i in (a.txt) do (
  6.    set /a N+=1
  7.    setlocal enabledelayedexpansion
  8.    copy /y "%var%\%%i" "%wjj%\!n!_%%i"
  9.    endlocal
  10. )
  11. pause
复制代码

作者: lleon    时间: 2011-3-29 18:06

谢谢!
回去试试。
作者: lleon    时间: 2011-3-30 19:08

本帖最后由 lleon 于 2011-3-30 19:16 编辑

"%wjj%\!n!_%%i"有点问题,文件会拷到当前目录下,而不是目的目录,并且n没有变成数字,直接以字母n的形式出现在目的文件名中。
修改后的:
  1. @echo off
  2. set tmpm=D:\!temp_wav
  3. set webm=D:\software\Webster\wav
  4. set extn=.wav
  5. set aa=z-
  6. set zz=--
  7. if not exist "%tmpm%\" md "%tmpm%"
  8. setlocal enabledelayedexpansion
  9. for /f "delims=" %%i in (a.txt) do (
  10.   set /a n+=1
  11.   copy /y "%webm%\%aa%%%i%zz%%extn%" "!tmpm!\!n!_%%i!extn!"
  12.   if not exist "%webm%\%aa%%%i%zz%%extn%" copy nul "!tmpm!\!n!_%%i没有"
  13. )
  14. endlocal
  15. pause
复制代码
我用它转了2000个朗文释义词汇,结果正常。
关键的地方是"!tmpm!\!n!_%%i!extn!",但是为什么tmpm和extn两边也要加!才会行?




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