如何使用 批处理文件 将 文件夹内的文件 命名为文件夹的名字?
如题,文件夹有空格、数字和英文字符。最好可以实现在文件夹下查找子文件夹下,某些文件的文件名是否和该文件所在的文件夹的名字是否一致,如果不一致则修改文文件所在文件夹的名字。...
如题,文件夹有空格、数字和英文字符。最好可以实现在文件夹下查找子文件夹下,某些文件的文件名是否和该文件所在的文件夹的名字是否一致,如果不一致则修改文文件所在文件夹的名字。
例如A文件夹下面有1~10个子文件夹,1的文件夹下面有MP4 jpg格式的若干文件,我想在A目录下找出1~10个文件夹下所有mp4的文件 并把他们改为所在文件夹的名字(即1~10的名字)
如果一个文件下有多个同类型的文件就按照文件所在的文件名后面加数据,例如1文件夹下面有a.mp4 b.mp4则重命名为1_1.mp4 1_2.mp4 展开
例如A文件夹下面有1~10个子文件夹,1的文件夹下面有MP4 jpg格式的若干文件,我想在A目录下找出1~10个文件夹下所有mp4的文件 并把他们改为所在文件夹的名字(即1~10的名字)
如果一个文件下有多个同类型的文件就按照文件所在的文件名后面加数据,例如1文件夹下面有a.mp4 b.mp4则重命名为1_1.mp4 1_2.mp4 展开
1个回答
展开全部
@echo off
for /f "delims=" %%a in ('dir /ad/b/s') do (
set /a n=1
for /f "delims=" %%b in ('dir /a-d/b "%%a\*.mp4"') do (
call ren "%%a\%%b" "%%~nxa_%%n%%%%~xb"
set /a n+=1
)
)
pause
更多追问追答
追问
测试了一下,有个不足:
如果文件夹1里面只有一个A.mp4 应该就不用重命名为1_1.mp4了吧应该命名为1.MP4。我自己看了bat脚本改了一下不知道为啥不行
@echo off
for /f "delims=" %%a in ('dir /ad/b/s') do (
set /a n=0
for /f "delims=" %%b in ('dir /a-d/b "%%a\*.mp4"') do (
if n EQU 0 ( call ren "%%a\%%b" "%%~nxb"
) else ( call ren "%%a\%%b" "%%~nxa_%%n%%%%~xb")
set /a n+=1
)
)
paus
追答
@echo off
for /f "delims=" %%a in ('dir /ad/b/s') do (
set /a n=1
set "f="
for /f "delims=" %%b in ('dir /a-d/b "%%a\*.mp4"') do (
call ren "%%a\%%b" "%%~nxa_%%n%%%%~xb"
set /a n+=1
)
set/a"1/(2-n)">nul 2>&1||(ren "%%a\%%~nxa_1.mp4" "%%~nxa.mp4")
)
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询