批处理实现文件自动备份,原计划是想:开机自启,当插入自己的U盘时,自动将我的一些重要文件备份进去。
但是考虑到一种情形,如果我想到U盘中来恢复我的文件,这样就与原计划相悖,因此把自动搜索盘符和开机自启的部分删去,等插入U盘,自己判断后再手动启动这个批处理。
默认会复制空目录,如不复制空目录,将/E替换为/S。
@echo off
::设置需要备份的路径
set bakpth=G:\baktest
::设置备份到的路径
set udisk=H:\test
::设置备份类型,若需要备份.txt文件,则为set type=.txt
set type=
call :copy
::当备份到的路径不存在需要备份的文件时,复制文件;或当需要备份的文件修改日期与先前备份的文件修改日期不同时,复制文件
:copy
for %%A in ("%bakpth%\*%type%") do (
if not exist %udisk%\%%~nxA (
echo copy %%A to %udisk%
xcopy /F/E/H/Y "%%A" "%udisk%"
) else (
set B=("%udisk%\%%~nxA")
if %%~tA neq %%~tB (
echo copy %%A to %udisk%
xcopy /F/E/H/Y "%%A" "%udisk%"
)
)
pause
)