【问题标题】:Renaming files within sub directories重命名子目录中的文件
【发布时间】:2013-06-12 07:29:05
【问题描述】:
谁能帮我写代码....
我有一个名为“book”的主文件夹,里面有 500 个子文件夹,如下所示
book/page1/Image/image 2.jpg
book/page2/Image/image 2.jpg
book/page3/Image/image 2.jpg
book/page4/Image/image 2.jpg
book/page5/Image/image 2.jpg
.
.
.
我希望将图像重命名为:
book/page1/Image/1.jpg
book/page2/Image/2.jpg
book/page3/Image/3.jpg
book/page4/Image/4.jpg
book/page5/Image/5.jpg
.
.
.
请帮忙
【问题讨论】:
标签:
batch-file
adsutil.vbs
【解决方案1】:
把它放在 book 文件夹中的一个 bat 文件中。
当然,在尝试这样的操作之前,您应该复制整个图书文件夹。
@echo off
for /f "delims=page" %%a in ('DIR /ad /b') do rename "page%%a\Image\Image2.jpg" "%%a.jpg"
【解决方案2】:
@ECHO OFF
SETLOCAL
FOR /f "tokens=1*delims=[]" %%i IN (
'dir /s /b /a-d "u:\book\image 2.jpg"^|find /n /v ""'
) DO ECHO REN "%%j" image%%i.jpg
这应该报告所需的重命名。
从最后一行删除 ECHO 关键字以实际执行重命名 - 检查后。
【解决方案3】:
下面的批处理文件将文件重命名为文件夹名称,删除了page 部分:
@echo off
setlocal EnableDelayedExpansion
cd \book
for /D %%a in (*) do (
set folder=%%a
ren "%%a\Image\image 2.jpg" "!folder:page=!.jpg"
)
下面的批处理文件将文件重命名为连续的两位数,而不考虑文件夹名称:
@echo off
setlocal EnableDelayedExpansion
cd \book
set number=100
for /D %%a in (*) do (
set /A number+=1
ren "%%a\Image\image 2.jpg" "!number:~1!.jpg"
)
如果您希望数字只有一位,请将数字分配更改为:set number=10。