Board logo

标题: [文件操作] [已解决]批处理如何使xcopy显示复制内容的同时将内容写入文件 [打印本页]

作者: nightwishfan    时间: 2009-2-25 20:35     标题: [已解决]批处理如何使xcopy显示复制内容的同时将内容写入文件

问题已解决,达到我期望的结果了,只是不知道有没有更高效的代码。
这是一个备份音乐文件到移动硬盘的批处理。
使用时它会在那个黑色窗口显示复制的文件名的同时,把文件名写入到一个文本文件里,方便查阅更新的信息。
因为备份文件是不定时的,这个批处理在备份音乐文件的时候不覆盖原来备份好的文件。
  1. @echo off
  2. echo 更新mp3文件:>>更新目录.txt
  3. xcopy D:\音乐\*.mp3 H:\音乐 /l/s/h/d/y
  4. ::之前没有上面这一句xcopy代码,加了一个/l的参数,就能显示复制的文件名了
  5. ::不加上面带参数 /l 的一句代码,结果只复制,不显示复制的文件名
  6. ::不知道为什么,望高手指导
  7. xcopy D:\音乐\*.mp3 H:\音乐 /s/h/d/y>>更新目录.txt
  8. echo mp3文件更新完毕>>更新目录.txt
  9. echo --------------------------------------------------------------->>更新目录.txt
  10. echo 更新wma文件:>>更新目录.txt
  11. xcopy D:\音乐\*.wma H:\音乐 /l/s/h/d/y
  12. xcopy D:\音乐\*.wma H:\音乐 /s/h/d/y>>更新目录.txt
  13. echo wma文件更新完毕>>更新目录.txt
  14. echo --------------------------------------------------------------->>更新目录.txt
  15. echo 更新歌词文件:>>更新目录.txt
  16. xcopy D:\音乐\*.lrc H:\音乐 /l/s/h/d/y
  17. xcopy D:\音乐\*.lrc H:\音乐 /s/h/d/y>>更新目录.txt
  18. echo 歌词文件更新完毕>>更新目录.txt
  19. echo --------------------------------------------------------------->>更新目录.txt
  20. echo 音乐文件备份完毕!>>更新目录.txt
  21. pause
复制代码

[ 本帖最后由 nightwishfan 于 2009-3-2 21:38 编辑 ]
作者: Batcher    时间: 2009-2-25 20:48

可以借助第三方命令行工具tee.exe
本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;

Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
作者: nightwishfan    时间: 2009-2-25 22:37     标题: 回复 2楼 的帖子

哦,我去查一查使用方法,谢谢了
作者: batman    时间: 2009-2-25 23:25

这个完全可以用for来解决:
  1. @echo off
  2. for %%a in (mp3 wma lrc) do (
  3.      echo 更新%%a文件:&echo 更新%%a文件:>>更新目录.txt
  4.      for /f "delims=" %%b in ('dir /s /b d:\音乐\*.%%a') do (
  5.           copy /y %%b H:\音乐\
  6.           echo %%~nxb已被更新&echo %%~nxb已被更新>>更新目录.txt
  7.     )
  8.    echo %%a文件更新完毕&echo %%a文件更新完毕>>更新目录.txt
  9.    echo ---------------------------------------------------------------&echo --------------------------------------------------------------->>更新目录.txt
  10. )
  11. echo 音乐文件备份完毕!&echo 音乐文件备份完毕!>>更新目录.txt
  12. pause>nul      
复制代码

[ 本帖最后由 batman 于 2009-2-25 23:28 编辑 ]
作者: nightwishfan    时间: 2009-2-26 08:15     标题: 回复 4楼 的帖子

谢谢你了。
这个代码是不是在同一个目录下寻找mp3 wma lrc 文件?因为我看它的运行结果里有这么一句:系统找不到指定文件。而且 那个copy命令是不是拷贝时把原文件覆盖了?我不想覆盖啊,因为歌曲文件太多了,覆盖的话会很费时……
作者: batman    时间: 2009-2-26 09:21

看来是楼主没能一次性把要求描述清楚,请楼主以后发贴注意这一点:论坛是做不到QQ
聊天的及时性的,你要解决问题就要一次性描述清楚,别人不会一天到晚守着你的贴子
来看的。。。
作者: Batcher    时间: 2009-2-26 09:29     标题: 回复 5楼 的帖子

请跟新顶楼的帖子,把跳过重复文件的要求加进去,以便后来人查看。
作者: nightwishfan    时间: 2009-2-26 18:30     标题: 回复 6楼 的帖子

多谢提醒!我会注意的




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