自动备份文件到U盘的方法
程序员文章站
2022-05-12 22:50:21
...
粘贴如下代码到文本文档保存,改后缀为bat运行即可
:start
@echo off
::若检测到U盘插入,则自动拷贝文件到U盘
::pt为自动备份的目录路径
setlocal enabledelayedexpansion
set "pt=D:\Desktop\自动备份"
:check
echo 正在检测U盘
for %%i in (d e f g h i j k ) do (
fsutil fsinfo drivetype %%i: | findstr "可移动" >nul 2>nul && set upan=%%i:
)
if "%upan%"=="" (
echo 未检测到U盘
ping -n 2 127.0.1>nul
cls
goto :check
)
echo 检测到U盘
echo 本次复制的文件:
if exist "%upan%\备份" (
::copy "!pt!\*.*" "%upan%\备份\" /v
xcopy "!pt!\*.*" "%upan%\备份\" /s /h /d /c /y
goto :1
) else (
md "%upan%\备份"
::copy "!pt!\*.*" "%upan%\备份\"
xcopy "!pt!\*.*" "%upan%\备份\" /s /h /d /c /y
)
goto :2
:1
echo 已成功将目录文件备份至U盘
ping -n 2 127.0.1>nul
pause>nul
goto :start
:2
echo 已成功将目录文件备份至U盘
ping -n 2 127.0.1>nul
pause>nul
goto :start
Xcopy的扩展命令:
/c 忽略错误并继续其他文件的复制
/d 复制新文件,已复制的将不再重新复制;若有新版本文件,将覆盖旧版本文件
/s 复制非空的目录和子目录。如果省略 /s,xcopy 将在一个目录中工作
/h 复制具有隐藏和系统文件属性的文件(默认情况下,xcopy不复制隐藏或系统文件)
/y 不提示要覆盖文件
创建文件夹:
md "路径"
echo 显示字符串
pause>nul 暂停、按任意键继续
:start 标记,配合goto语句使用
goto :start 跳转到标记处
运行效果:
原路径:
U盘:
Tips:
如果出现乱码,则编码选择ANSI
其他: