好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 xiaomim123 于 2021-7-2 19:16 编辑
再原创区发现大佬发的软件(https://www.52pojie.cn/thread-1466411-1-1.html)虽然可以实现我的需求,但是执行效率低了一些,而且也不是百分百符合我的需求。
于是百度了一下发现了有前辈用dos命令实现了批量将文件名更名为其上级目录名的功能,
原文为:https://www.cnblogs.com/xxcanghai/p/4584153.html
这里我搬运过来,希望大家喜欢。
功能:
要做一个程序来批量修改文件名,将一个文件夹下所有的文件的文件名,修改为其上级目录的名字注意不是修改更名为同一级目录名,而把自己的名字更名为自己所在的上一级目录的名字
使用注意事项
1,当文件夹内有多个文件,且扩展名相同,则会发生文件名冲突错误,会导致从当前文件夹内从第二文件起之后的文件都不更名请自行编辑文件过滤信息,以保证每个文件夹下被更名文件都是唯一的2,当文件名中含有特殊字符时。如! 或&符号等会导致更名失败,可以先执行以下命令
for /f "delims=" %i in ('dir /s /b /a:-d 【要处理文件的目录】\*.*') do @ren "%i" "a%~xi"
先把所有文件的文件名都更名为任意字符,然后再批量修改即可
批量将文件名更名为其上级目录名代码
@echo off
:start
setlocal enabledelayedexpansion
set isrun=n
echo 请把包含要处理的文件的[文件夹]拖动到此处,回车确定
set dir=n&set /p dir=
if "%dir:"=%"=="n" cls&goto start
cls&echo ====================================
:run
for /f "delims=" %%i in ('dir /s /b /a:-d %dir%\*.*') do (
set full=%%~dpnxi
set exten=%%~xi
set path=%%~dpi
set path=!path:~0,-1!
for /f "delims=" %%j in ("!path!") do set path=%%~nj
if /i "!isrun!"=="n" (
echo ren "!full!" "!path!!exten!"
) else (
ren "!full!" "!path!!exten!"
echo 更名为:"!path!!exten!"
)
)
echo ====================================
if /i "%isrun%"=="n" (
echo 即将执行以上操作,是否执行[Y/N]
set isrun=n&set /p isrun=
if /i "!isrun!"=="y" ( goto run ) else ( cls&goto start )
) else (
echo.&echo 更名完成!
echo 任意键返回&pause>nul&cls&goto start
)
批处理代码,保存至bat文件中运行即可: |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|