[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[文件操作] 批处理如何根据列表文件查找并复制文件?

本帖最后由 tanrr 于 2018-8-5 23:48 编辑

根据文本文件1.txt,该文件每行是一个文件名(不含扩展名),如下所示:
rink
bang
nine
hkjgkljkhkgj
jfkjgklhkglkjl

查找指定文件夹e:/2(一定要包括子文件夹)下匹配的文件(完全匹配,不区分大小写),如果找到:
1.将找到的文件复制到指定文件夹e:/3和d:/3
2.将找到的文件的文件名写入4.txt,格式为每行“文件名”+空格+“[sound:_文件名.扩展名]”,未找到的文件不写入,如下所示:
rink [sound:_rink.mp3]
bang [sound:_bang.mp3]
nine [sound:_nine.wav]

最后显示总查找条数,找到条数,未找到条数。

文本文件编码UTF-8。
请问如何才能实现?

没人回复?
  1. @echo off & setlocal EnableDelayedExpansion
  2. cd.>4.txt
  3. for /f "delims=" %%a in ('dir/a-d/b/s "e:\2"') do (
  4.     set /a total+=1
  5.     findstr /i /x /c:"%%~na" "1.txt">nul 2>nul&&(
  6.        set /a num+=1
  7.        set/p=复制 %%~nxa 到 [e:\3]目录<nul & (copy /y "%%a" "e:\3\">nul 2>nul && echo 成功 || echo 失败)
  8.        set/p=复制 %%~nxa 到 [d:\4]目录<nul & (copy /y "%%a" "d:\4\">nul 2>nul && echo 成功 || echo 失败)
  9.        echo %%~na [sound:_%%~na%%~xa]>>4.txt
  10.     ) || set /a number+=1)
  11. echo. & echo 总查找[%total%]条, 找到[%num%]条, 未找到[%number%]条。
  12. pause
复制代码
=============================================

TOP

返回列表