中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 05:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]文件改名,.要求如下 查看 682 回复 2
楼 主 [求助]文件改名,.要求如下 发表于 2008-04-22 19:09 ·  中国 广东 广州 移动
初级用户
积分 72
发帖 28
注册 2008-04-19 01:37
18年会员
UID 116290
性别 男
状态 离线
比如A文件夹里有一个叫 123-1.TXT B文件夹也有 123-1.TXT....要求B文件夹里的文件复制到A文件夹下遇到同名字的就改名为123-2.TXT,.. 减号前面的文件名是不固定长度的...共同点就是文件名都有减号,,,.....以此类推,.....

[ Last edited by meiyongderen on 2008-4-22 at 07:19 PM ]
2 发表于 2008-04-22 22:45 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线

@echo off
cd/d %~dp0
for /f %%f in ('dir/b A') do (
 if not exist "B\%%f" (copy "A\%%f" B) else (call :cpy_an "%%~f")
)
goto :eof
:cpy_an
 setlocal enableDelayedExpansion
 for /f "tokens=1* delims=-" %%i in ("%~1") do (
  set fn=%%i
  set/a num=%%j
  :rn
  set/a num+=1
  if exist "B\!fn!-!num!%~x1" goto :rn
  copy "A\%~1" "B\!fn!-!num!%~x1"
 )
goto :eof
┌───────┐
├→学习→实践→┤
└───────┘
3 发表于 2008-04-23 00:40 ·  中国 广东 广州 移动
初级用户
积分 72
发帖 28
注册 2008-04-19 01:37
18年会员
UID 116290
性别 男
状态 离线
能写的那么好,.那么精简...真的让我佩服,....
论坛跳转: