[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

使用循环的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盘里备份过来了)……
有没有简单点的命令写法?

复制过程中如果使用/y则会导致很多文件无意义的重复复制

使用 /d 参数可以只复制更新过的文件

TOP

回复 2# DAIC


    空驱动器的问题

TOP

本帖最后由 小文 于 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
复制代码

TOP

返回列表