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

[系统相关] 批处理命令xcopy与空驱动器的问题

[复制链接]
发表于 2015-1-19 19:36:10 | 显示全部楼层 |阅读模式
使用循环的XCOPY备份U盘里BAK里的文件到电脑D盘的BAK下,用了向U盘里写入文件再判断此文件是否存在来判断有没有U盘,和if exist 盘符来判断是不是存在U盘再执行XCOPY都会出现当U盘为正常弹出或有空驱动器(接入手机等但没有挂载存储)的情况:“驱动器中没有磁盘。请在驱动器……中插入……”,一个是cmd.exe窗口的提示,一个是xcopy窗口的提示。
1.想问一下怎样才能解决这种“错误”提示呢?总不能每次都直接拔U盘吧?用弹出的方式电脑就会留下一个空的“可移动磁盘XXXX”,点开说请将磁盘插入‘可移动磁盘XXXX’,还有cmd弹出的没有磁盘的窗口……
能否通过命令之类的办法来解决?
2.复制过程中如果使用/y则会导致很多文件无意义的重复复制,如果使用/-y则电脑中的BAK之下的目录下的文件不会被更新(删除后就不会再从U盘里备份过来了)……
有没有简单点的命令写法?
发表于 2015-1-19 22:16:40 | 显示全部楼层
复制过程中如果使用/y则会导致很多文件无意义的重复复制

使用 /d 参数可以只复制更新过的文件
 楼主| 发表于 2015-2-15 19:44:12 | 显示全部楼层
回复 2# DAIC


    空驱动器的问题
 楼主| 发表于 2015-2-25 17:35:24 | 显示全部楼层
本帖最后由 小文 于 2019-9-23 19:57 编辑

我想问……上面的问题为什么没人围观………………

  1. @echo off

  2. ::设置备份文件夹路径
  3. set bakpth=D:\UDISKBAK
  4. ::变量type值为空则默认备份U盘中所有文件,如只备份.RAR类型文件,则 set type=.RAR ,以此类推
  5. set type=
  6. ::取得U盘盘符并执行备份操作
  7. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  8. fsutil fsinfo drivetype %%a:|findstr "可移动">Nul&&(set udisk=%%a&call :ucopy)
  9. )
  10. exit

  11. :ucopy
  12. if not exist "%bakpth%\%udisk%" md "%bakpth%\%udisk%"
  13. ::复制U盘文件,默认不复制空文件夹,如果需要复制空文件夹,则将下行命令开关/s改为/e
  14. xcopy /s/h/y %udisk%:\*%type% "%bakpth%\%udisk%" >nul 2>nul
  15. goto :eof
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 19:04 , Processed in 0.017308 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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