按文件名列表new_filenames.txt重命名当前目录及其子目录下所有文件的文件名,均不成功,请高手指正,谢谢!
文件列表new_filenames.txt中的文件名无论写成:
新文件名1.pdf
新文件名2.pdf
......
还是写成:
新文件名1.pdf,旧文件名.jpg
新文件名2.pdf,旧文件名.jpg
......
代码①和代码②都不能实现重命名
-------------------------------------------
代码②:
代码无效,没有执行如何操作- @echo off
- chcp 65001
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- :: 假设我们要处理当前目录下的所有文件
- for %%F in (*) do (
- set "filename=%%~nxF"
- echo 文件名: !filename!
- REM 在这里可以使用变量"filename"
- setlocal enabledelayedexpansion
- for /f "tokens=1,* delims=" %%a in ("new_filenames.txt") do (
- rem 检查 %%a 是否对应 !filename!,以避免重命名错误
- if "%%~a"=="!filename!" (
- ren "!filename!" "%%b"
- )
- )
- endlocal
- )
- endlocal
- pause
复制代码 --------------------------------------------------------------
代码①:
rem 文件名列表放在其它当前目录(bat同目录)重命名就不成功- @echo off
- chcp 65001
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
-
- :: 假设我们要处理当前目录下的所有文件
- for %%F in (*) do (
- set "filename=%%~nxF"
- echo 文件名: !filename!
- REM 在这里可以使用变量"filename"
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- for /f "tokens=1,* delims=" %%a in (new_filenames.txt) do (
- set "filen=%%a"
- ren "!filen!" "!filename!"
- )
- )
- endlocal
- pause
复制代码
|