批处理复制文件时同名文件跳过并重命名.

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:07:50
用批处理,源文件在D盘里文件夹soft中,目标文件夹在E盘文件夹micr中,复制soft中文件到micr,当micr中存在此文件,则自动重命名,不可覆盖以前备份的文件,我要实现每次开机自动运行这个批处理,在e盘创建一个备份,每运行一次就多一个备份,运行100次,e盘就有100个备份。
D盘soft中有一个《记录.xls》文件和三个子目录(这个xls文件在SOFT根目录下),我只备份这个xls文件,复制到e盘micr文件夹之后,不创建目录,只看到很多次备份后的xls,重命名可为1.xls 2.xls 3.xls 4.xls 5.xls等,一至往后加。。。

@echo off
:loop
set /a n+=1
if not exist e:\micr\%n%.xls (copy d:\soft\记录.xls e:\micr\%n%.xls&&goto :eof)
goto loop

rem *************************
rem 星号以上代码另存为xx.bat,放在开始的启动项内,有问题百度HI联系,这个需求用不上FOR。

"当micr中存在此文件,则自动重命名",那么,你重命名的规则是什么?

另外,你在soft文件夹中要复制的是否只是该文件夹下的文件?包括目录和子目录下的文件吗?

试试看吧:
@echo off
for /f %%i in ('dir /od /tc /b e:\micr') do (
set filename=%%i
)
set filename=%filename:~0,-4%
set /a filename+=1
if not defined filename set filename=1
REM 下面的a.xls修改成你的文件名
copy d:\soft\记录.xls e:\micr\%filename%.xls

很简单 存在就复制并重命名 不存在直接复制 加入启动项 但看到最后我头晕 了 前面你说把soft中的文件(不止一个吧)复制到micr中 意思就是每次复制文件到同一个文件夹并重复就重命名 最后的意思是要100个备份的文件夹吧
最后的意思应该是你的实际要求 那更简单了 每次复制soft文件夹到E盘并重命名就可以了

你要用批处理处理的前提下,总体的思路如下:
1、E盘备份文件命名问题,建议采用以当前日期,时间为文件名。
2、自动行你可以批处理命令加入启动项,或者添加WINDOWS任务计划运行。

@e