如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录

如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录不能覆盖已经有的备份,要能够自动重命名。每次执行都只增不减。自己试了一下用d... 如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录不能覆盖已经有的备份,要能够自动重命名。每次执行都只增不减。自己试了一下用dos的copy和xcopy以及高级复制命令,都没效果。 展开
 我来答
yhcfsr
2017-11-28 · TA获得超过683个赞
知道小有建树答主
回答量:477
采纳率:76%
帮助的人:266万
展开全部

这个并不难,但你要说明几个问题:

  1. 要指定源文件,比如要复制A文件夹下f文件到B文件夹下

  2. 要说明重命名规则,你希望是f_1,f_2……这样的,还是f-副本,f-副本-副本,f-副本-副本-副本……这样的

  3. 是只备份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次备份的结果:

依梦琴瑶
高粉答主

2017-11-28 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
@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

以上代码执行后,就会累积给后面的文件名后面增加“(编号)”这样的格式。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式