如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录
如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录不能覆盖已经有的备份,要能够自动重命名。每次执行都只增不减。自己试了一下用d...
如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录不能覆盖已经有的备份,要能够自动重命名。每次执行都只增不减。自己试了一下用dos的copy和xcopy以及高级复制命令,都没效果。
展开
展开全部
这个并不难,但你要说明几个问题:
要指定源文件,比如要复制A文件夹下f文件到B文件夹下
要说明重命名规则,你希望是f_1,f_2……这样的,还是f-副本,f-副本-副本,f-副本-副本-副本……这样的
是只备份f文件呢还是要备份多个文件。
@ECHO OFF&setlocal enabledelayedexpansion
::此脚本是将源目录E:\TEST0中的test.txt文件,备份到目的目录d:\TEST中,运行一次将test.txt备份一次,
::并根据目的目录中已存在的备份,将新的备份依次命名为test_0.txt,test_1.txt……
::设置源目录
set "sur=E:\TEST0"
::设置目的目录
set "des=d:\TEST"
::设置源备份文件
set "f=test.txt"
cd %sur%
set /a num=0
if not exist "%des%" md "%des%"
for /f "delims=" %%a in ('dir /a-d /b "%f%"') do (
for /f "delims=" %%i in ('dir /a-d /b "%des%"^|findstr "%%~na"') do set /a num+=1
@copy "%sur%\%%a" "%des%\%%~na_!num!%%~xa"
)
pause>nul
测试结果:
源目录结构
运行11次备份的结果:
展开全部
@echo off & title 增量备份 By 依梦琴瑶
::设置备份的文件名
set FileName=mypic
::设置备份文件的后缀名
set FileExt=.jpg
::设置备份文件的路径,当前目录就用小数点表示
set FilePath=.
::设置文件保存到指定位置
set SaveDir=D:\Backup
:Copy+
if defined Num set C_Num=(%Num%)
if exist "%SaveDir%\%FileName%%C_Num%%FileExt%" (
set /a Num+=1
goto Copy+
) else (
copy "%SaveDir%\%FileName%%FileExt%" "%SaveDir%\%FileName%%C_Num%%FileExt%"
)
Pause
以上代码执行后,就会累积给后面的文件名后面增加“(编号)”这样的格式。
::设置备份的文件名
set FileName=mypic
::设置备份文件的后缀名
set FileExt=.jpg
::设置备份文件的路径,当前目录就用小数点表示
set FilePath=.
::设置文件保存到指定位置
set SaveDir=D:\Backup
:Copy+
if defined Num set C_Num=(%Num%)
if exist "%SaveDir%\%FileName%%C_Num%%FileExt%" (
set /a Num+=1
goto Copy+
) else (
copy "%SaveDir%\%FileName%%FileExt%" "%SaveDir%\%FileName%%C_Num%%FileExt%"
)
Pause
以上代码执行后,就会累积给后面的文件名后面增加“(编号)”这样的格式。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询