使用批处理命令判断,如果有在同一文件夹下有两个同名文件,则后一个文件自动加数字后缀 20

我编写了一个bat批处理,解决桌面文件乱的问题,将桌面文件(除了系统自带的“我的电脑”之类的)使用move命令转移到一个固定文件夹M中,已经可以实现,但是有一个问题,遇到... 我编写了一个bat批处理,解决桌面文件乱的问题,将桌面文件(除了系统自带的“我的电脑”之类的)使用move命令转移到一个固定文件夹M中,已经可以实现,但是有一个问题,遇到第二次及以后再运行该批处理,遇到同名文件,则无提示自动覆盖,可能会造成意想不到的损失。在此请教高手帮忙添加判断后移动进指定文件夹的文件如a.txt与M文件夹中同样存在的a.txt进行比较,如果内容不相同,则将后进入M文件夹的a.txt改名,后面加序号或者执行命令的日期都可以。不要简单告诉我使用if、ren语句,我是菜鸟,请给出具体判断和更名语句,万分感谢!还要考虑以后每次都可能遇到的同名文件,比如第二次a.txt改名成a2.txt,那么第三次如果有a.txt,就必须避免再改成a2.txt了,所以可能需要使用变量之类的。给出我已经写好的代码,请高手补充:
@echo off
color 2f
title Wa-清爽桌面
mode con lines=2 cols=32
echo.
echo 正在转移桌面文件到桌面文件包……
move "%USERPROFILE%"\桌面\*.* "%USERPROFILE%"\桌面\桌面文件包
move "%USERPROFILE%"\桌面\桌面文件包\*.lnk "%USERPROFILE%"\桌面\
exit
展开
 我来答
们八味0g
推荐于2016-06-24 · TA获得超过721个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:65万
展开全部

个人认为加个时间戳是最可靠可行的办法,现有a.txt, 若文件包中已有a.txt  则命名a.txt 为

a_%data%_%time%.txt

 

这样保证了文件的唯一性,

代码如下:

@echo off&setlocal enabledelayedexpansion
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set hours=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%
set var=%year%%month%%day%_%hours%%min%%sec%
set mess="%USERPROFILE%"\桌面\桌面文件包\"
set desktop="%USERPROFILE%"\桌面\"
for /f "tokens=*" %%a in ('dir /a-d /b !desktop!') do (
    set "fn=%%a"
    set "fnb=%%~na"
    set "fnf=%%~xa"
    if "!fnf!" neq ".bat" (
        if exist "!mess!!fnb!!fnf!" (
            ren "!fn!" "!fnb!_!var!!fnf!"
            move "!fnb!_!var!!fnf!" "!mess!" 
        )else (
            move "!fn!" "!mess!" 
        )
    )
)
pause
更多追问追答
追问
运行后说无法找到文件?
追答
@echo off&setlocal enabledelayedexpansion
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set hours=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%
set var=%year%%month%%day%_%hours%%min%%sec%
set mess="%USERPROFILE%\桌面\桌面文件包\"
set desktop="%USERPROFILE%\桌面\"
for /f "tokens=*" %%a in ('dir /a-d /b !desktop!') do (
    set "fn=%%a"
    set "fnb=%%~na"
    set "fnf=%%~xa"
    if "!fnf!" neq ".bat" (
        if exist "!mess!!fnb!!fnf!" (
            ren "!fn!" "!fnb!_!var!!fnf!"
            move "!fnb!_!var!!fnf!" "!mess!" 
        )else (
            move "!fn!" "!mess!" 
        )
    )
)
pause

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式