|
|
发表于 2024-8-14 09:05:22
|
显示全部楼层
本帖最后由 qixiaobin0715 于 2024-8-14 09:31 编辑
出现重名文件时加顺序号重命名,按Windows的默认规则命名重名文件,比如“a.txt” “a (2).txt” “a (3).txt”...,这里来个简易版,假如各个重名不会超过10个:- @echo off
- for /f "tokens=1* delims=." %%i in ('dir /b /a-d^|findstr /b "[1-9][0-9]*\..*\."') do (
- if exist "%%j" (
- set n=1
- for /l %%k in (2,1,10) do (
- if not exist "%%~nj (%%k)%%~xj" (
- if defined n (
- set n=
- ren "%%i.%%j" "%%~nj (%%k)%%~xj"
- )
- )
- )
- ) else (
- ren "%%i.%%j" "%%j"
- )
- )
- pause
复制代码 未经测试,可能会有问题,大体思路应当没问题。
findstr要搜索的字符项([1-9][0-9]*\..*\.)后面比3楼的([0-9][0-9]*\.)多出了一部分,是为了防止当前目录存在类似1.txt这样的文件被误配。 |
|