找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23793|回复: 8

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

[复制链接]
发表于 2009-2-25 20:35:19 | 显示全部楼层 |阅读模式
问题已解决,达到我期望的结果了,只是不知道有没有更高效的代码。
这是一个备份音乐文件到移动硬盘的批处理。
使用时它会在那个黑色窗口显示复制的文件名的同时,把文件名写入到一个文本文件里,方便查阅更新的信息。
因为备份文件是不定时的,这个批处理在备份音乐文件的时候不覆盖原来备份好的文件。
  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 编辑 ]
发表于 2009-2-25 20:48:24 | 显示全部楼层
可以借助第三方命令行工具tee.exe
本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;

Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
 楼主| 发表于 2009-2-25 22:37:16 | 显示全部楼层

回复 2楼 的帖子

哦,我去查一查使用方法,谢谢了
发表于 2009-2-25 23:25:00 | 显示全部楼层
这个完全可以用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 编辑 ]
 楼主| 发表于 2009-2-26 08:15:34 | 显示全部楼层

回复 4楼 的帖子

谢谢你了。
这个代码是不是在同一个目录下寻找mp3 wma lrc 文件?因为我看它的运行结果里有这么一句:系统找不到指定文件。而且 那个copy命令是不是拷贝时把原文件覆盖了?我不想覆盖啊,因为歌曲文件太多了,覆盖的话会很费时……
发表于 2009-2-26 09:21:49 | 显示全部楼层
看来是楼主没能一次性把要求描述清楚,请楼主以后发贴注意这一点:论坛是做不到QQ
聊天的及时性的,你要解决问题就要一次性描述清楚,别人不会一天到晚守着你的贴子
来看的。。。
发表于 2009-2-26 09:29:31 | 显示全部楼层

回复 5楼 的帖子

请跟新顶楼的帖子,把跳过重复文件的要求加进去,以便后来人查看。
 楼主| 发表于 2009-2-26 18:30:04 | 显示全部楼层

回复 6楼 的帖子

多谢提醒!我会注意的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 06:21 , Processed in 0.023117 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表