已解决--求批处理实现 复制文件遇到相同文件名自动重命名(增量备份-不覆盖以前的....
本帖最后由 879792799 于 2018-9-14 18:04 编辑已完美解决----答案在7楼 谢谢junyee大大指教!!!
求助大大们一个批处理!!!
我想实现这样功能
---我拖动文件到批处理上,批处理自动把这个文件复制C盘目录下(备份)
假如c盘已经备份过一次存在相同的文件名 就重命名文件后加-1标志备份到C盘下(不覆盖已经存在文件)
假如我拖动文件1.txt到批处理上C盘生成1.TXT
我再拖动文件1.txt到批处理上C盘生成1-1.TXT
我再再拖动文件1.txt到批处理上C盘生成1-2.TXT
我再再再拖动文件1.txt到批处理上C盘生成1-3.TXT
.。。。。。。。
。。。。
。。
求指教 谢谢大大了!!!! robocopy了解一下 窄口牛 发表于 2018-9-14 12:53
robocopy了解一下
robocopy不仅是一个强大的命令,还是一个复杂的命令,一段时间不用就会忘记,好多年前研究的很透彻,现在不看帮助都不会~ 第一步好办,后面的,,,
要是不存在1.txt却存在1-1.txt呢 江南一根葱 发表于 2018-9-14 13:42
第一步好办,后面的,,,
要是不存在1.txt却存在1-1.txt呢
不用考虑那么复杂的 个人使用 大大也会批处理??!! 窄口牛 发表于 2018-9-14 12:53
robocopy了解一下
我喜欢用robocopy来删除很难删除的文件夹之类{:1_186:}
先建一个空的文件夹,直接用robocopy镜像到要删除的文件夹{:1_201:} 本帖最后由 junyee 于 2018-9-14 16:21 编辑
唉.......
@echo off &&setlocal enabledelayedexpansion
set file=%1
set fn=%~n1
set fe=%~x1
set bakDir=R:\TEMP\bak
if exist %bakDir%\%fn%%fe% (
call :copyFileExist
) else (
copy %file% %bakDir%\ /y
)
echo finished.
ping 127.1 -n 2 >NUL
GOTO :EOF
:copyFileExist
set ext=1
:until_no_file
if exist %bakDir%\%fn%-!ext!.%fe% (
set /a ext+=1 >nul
goto :until_no_file
)
copy %file% %bakDir%\%fn%-!ext!.%fe%
goto :EOF
junyee 发表于 2018-9-14 16:15
唉.......
谢谢 大大出手!!!{:2_127:} 我赶紧试试! 本帖最后由 879792799 于 2018-9-14 18:08 编辑
junyee 发表于 2018-9-14 16:15
唉.......
谢谢!谢谢搞定啦!! 很满意!很满意!!!
{:2_127:}还是大大最实在,俺们论坛真是藏龙卧虎啊,哈哈!!!!!{:2_127:} 将
%bakDir%\%fn%-!ext!%.fe%
修改为
%bakDir%\%fn%-!ext!%fe% 本帖最后由 虫五 于 2018-11-20 16:10 编辑
junyee 发表于 2018-9-14 16:15
唉.......
请问下,如何实现批量复制,覆盖不了的自动重命名旧文件?目前我只能实现覆盖不了的报错,然后手动改名。
页:
[1]