求助!批量改名bat
bat吧
全部回复
仅看楼主
level 2
YOTU2111 楼主
一个总文件夹里有N多子文件夹,子文件夹里放的照片,想求个bat,放到总文件夹下,可以把所有子文件夹里的照片按照此格式批量重命名:“子文件夹名称-01.jpg”,按顺序依次递增。
找到过一个bat,但是第一个文件名称排序是00,不是01。
命令如下
@璐村惂鐢ㄦ埛_000076K馃惥 off
@setlocal enabledelayedexpansion
@For /f "delims=" %%i in ('dir /b /ad') do (
@贴吧用户_0000Q9P %%i
@call :substr_before_char - %%i dir1
@call :substr_after_char - %%i dir2
@call :clr_bgn0s !dir2! n
@echo !dir1! !dir2! !n!
@for /f "delims=" %%j in ('dir /b /on') do (
@set rn=00!n!
@set rn=!rn:~-2!
@echo !rn!
@ren "%%j" "!dir1!-!rn!.jpg"
@set /a n=n+1
)
@cd..
)
@goto End0
:clr_bgn0s
@setlocal
@set str=%1
:Rep1
@set fc=%str:~0,1%
@if %fc%==0 (
@set str=%str:~1%
@goto Rep1
)
:Rtn1
@endlocal& set "%~2=%str%"
@goto :eof
:substr_after_char
@setlocal
@set c=%1
@set str=%2
@set tmp_str=%str%
:Rep2
@set get_c=%tmp_str:~0,1%
@if %get_c%==%c% (
@set tmp_str=%tmp_str:~1%
@goto Rtn2
)
@set tmp_str=%tmp_str:~1%
@if "%tmp_str%"=="" (
@goto Rtn2
) else (
@goto Rep2
)
:Rtn2
@set str=%tmp_str%
@endlocal& set "%~3=%str%"
@goto :eof
:substr_before_char
@setlocal
@set c=%1
@set str=%2
@set tmp_str=%str%
:Rep3
@set get_c=%tmp_str:~-1%
@if %get_c%==%c% (
@set tmp_str=%tmp_str:~0,-1%
@goto Rtn3
)
@set tmp_str=%tmp_str:~0,-1%
@if "%tmp_str%"=="" (
@set tmp_str=%str%
@goto Rtn3
) else (
@goto Rep3
)
:Rtn3
@set str=%tmp_str%
@endlocal& set "%~3=%str%"
@goto :eof
:End0
如果按照这个改,应该怎么改。或者请大神给我一共一个新的,感激不尽
2020年06月29日 17点06分 1
level 2
YOTU2111 楼主
第一行echo of
第四行cd %%i
2020年06月30日 00点06分 2
level 9
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起运行
@璐村惂鐢ㄦ埛_000076K馃惥 off
rem 将多个文件夹里的文件以所在文件夹的名称和递增数字重命名
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@璐村惂鐢ㄦ埛_053Q95e馃惥 %z%
cd /d "%~dp0"
for /d %%a in (*) do (
set n=10000
set "fd=%%~nxa"
echo;--------"%%a"--------
for /f "delims=" %%b in ('dir /a-d/b "%%a\" 2^>nul') do (
set "f=%%b"
set /a n+=1
setlocal enabledelayedexpansion
echo;"!f!" --^> "!fd!!n:~-2!%%~xb"
endlocal
)
)
echo;%#% +%$%%$%/%@% %z%
pause
exit
2020年06月30日 08点06分 3
1、运行画面中,更改后的序号前没有短横线“-” 2、运行后文件名并没有被更改。 请问怎么回事
2020年06月30日 12点06分
@YOTU2111 按运行后窗口标题栏中的提示联系我
2020年06月30日 13点06分
1