@echo off
setlocal EnableDelayedExpansion
set a=1
rem 循环当前目录下所有文档的文件名,支持带空格的名称
for /f "delims=" %%i in ('dir /b *.doc') do (
rem 如果没有相同的文件名,则继续
if not "%%~ni"=="%~n0" (
ren "%%i" "!a!.doc"
rem 设置数值型变量a=a+1
set /a a+=1
)
)
echo 批量重命名完成!
pause&exit
在DOC文档目录执行批处理即可
这段代码中
if not "%%~ni"=="%~n0"
ni和n0是什么意思啊?n在批处理中有什么特别的含义么?困惑死了。求拯救。
批处理更改文件名是判断是否有相同文件名的代码不懂,求解释!
答案:2 悬赏:20 手机版
解决时间 2021-03-11 12:55
- 提问者网友:难遇难求
- 2021-03-11 08:33
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-03-11 09:34
%~nI - 仅将 %I 扩充到一个文件名
%%i 是循环变量,%%~ni 是将循环变量 i 扩展为一个合格的文件名。
%0 是默认的入参,值为调用路径及批处理文件名。
如在C:\下执行C:\test.bat,则在执行过程中%0值为"C:\test.bat"。
%%i 是循环变量,%%~ni 是将循环变量 i 扩展为一个合格的文件名。
%0 是默认的入参,值为调用路径及批处理文件名。
如在C:\下执行C:\test.bat,则在执行过程中%0值为"C:\test.bat"。
全部回答
- 1楼网友:轮獄道
- 2021-03-11 10:54
有一个方法可以实现,不需要写批处理,只是使用一种常用的文件管理器total commander,一个类似于资源管理器而功能远远超过资源管理器的文件管理器,在界面菜单“命令”里,有一项是“批量重命名文件”,用它可以实现你的批处理要求!软件可以到华军等大软件网站下载,免费的。如果使用中遇到问题,可以跟我讨论!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯