|
|
本帖最后由 zxy0199 于 2025-6-30 23:04 编辑
原文件
img202504237622.JPG
img202504237623.JPG
img202504237624.JPG
img202504237625.JPG
1.txt文件
手机1
手机2
结果输出
手机1-img202504237622.JPG
手机2-img202504237623.JPG
手机1-img202504237624.JPG
手机2-img202504237625.JPG
用ai写的代码报错了。。。求求大佬- @echo off
- setlocal enabledelayedexpansion
- :: 步骤1: 读取1.txt的命名规则
- set rule_count=0
- if not exist "1.txt" (
- echo 错误: 1.txt 文件不存在!
- pause
- exit /b
- )
- for /f "usebackq delims=" %%a in ("1.txt") do (
- set /a rule_count+=1
- set "rule_!rule_count!=%%a"
- )
- if %rule_count% equ 0 (
- echo 错误: 1.txt 中没有找到命名规则!
- pause
- exit /b
- )
- :: 步骤2: 收集支持的媒体文件(按修改时间排序)
- set file_count=0
- for /f "delims=" %%f in ('dir /b /o:-d *.jpg *.jpeg *.png *.gif *.bmp *.mp4 *.avi *.mov *.mkv *.flv 2^>nul') do (
- set /a file_count+=1
- set "file_!file_count!=%%f"
- )
- if %file_count% equ 0 (
- echo 没有找到支持的图片或视频文件!
- pause
- exit /b
- )
- :: 步骤3: 循环应用命名规则
- set index=1
- for /l %%i in (1,1,%file_count%) do (
- set "filename=!file_%%i!"
- set "ext=!filename:~-4!"
-
- :: 获取当前规则
- set "current_rule=!rule_%index%!"
-
- :: 生成新文件名并重命名
- set "new_name=!current_rule! !filename!"
- ren "!filename!" "!new_name!" 2>nul
-
- :: 更新规则索引(循环)
- set /a index=(index %% rule_count) + 1
-
- echo 已重命名: "!filename!" -> "!new_name!"
- )
- echo.
- echo 完成! 已处理 %file_count% 个文件。
- pause
复制代码 |
|