标题: [文本处理] 批处理怎样可以批量用文件夹名命名文件? [打印本页]
作者: asspig 时间: 2011-12-23 19:39 标题: 批处理怎样可以批量用文件夹名命名文件?
一个文件夹下有列文件夹:
图片 照片 相片 picture .........(还有很多)
把“图片”文件夹下的文件命名如下:
图片 图片_01 图片_02 图片_03 ........
把“照片”文件夹下的文件命名如下:
照片 照片_01 照片_02 照片_03 .........
把“相片”文件夹命名如下:
相片 相片_01 相片_02 相片_03 .........
把“picture"文件夹下的文件命名如下:
picture picture_01 picture_02 picture_03 .............
那位兄弟帮我写一个bat,一次性就可以完成这些操作
作者: jellyhk 时间: 2011-12-23 20:00
放在图片 照片 相片...同目录!- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /ad /s /b') do (
- for /f "delims=" %%b in ('dir /a-d /s /b "%%a"') do (
- set /a a+=1
- if !a! lss 10 (
- ren "%%b" %%~na_0!a!%%~xb
- ) else (
- ren "%%b" %%~na_!a!%%~xb
- )
- )
- )
复制代码
作者: qq2501 时间: 2011-12-23 20:11 标题: RE: 怎样可以批量用文件夹名命名文件?
本帖最后由 qq2501 于 2011-12-23 21:38 编辑
这个应该就是你想要的功能吧。需要放在图片、相片、picture 之类的文件夹上一个目录。
感觉好用就给我加个分吧☺- @echo off & setlocal ENABLEDELAYEDEXPANSION
- for /f "usebackq" %%a in (`dir /b /ad`) do (
- cd %%a
- set a=0
- for %%i in (*.*) do (
- if !a! EQU 0 (
- ren %%i %%a%%~xi
- )
- if !a! LSS 10 (
-
- ren %%i %%a_0!a!%%~xi
- set /a a+=1
- ) else (
-
- ren %%i %%a_!a!%%~xi
- set /a a+=1
- )
- )
- cd ..
- )
- echo,succsefully
- pause>nul
复制代码
作者: asspig 时间: 2011-12-23 20:11
本帖最后由 asspig 于 2011-12-23 20:24 编辑
放在图片 照片 相片...同目录!
jellyhk 发表于 2011-12-23 20:00
非常感谢,相片里的文件名是要变成这样 相片(第一个文件) 相片_01(第二个文件) 相片_02(第三个文件) 相片_03(第三个文件)
面且每个子文件夹都是像这样开始重新编号
作者: asspig 时间: 2011-12-23 20:17
文件夹的名字不止图片 照片 相片 这几个的,还有很多文件夹的
作者: awk 时间: 2011-12-23 21:03
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /b /ad') do (
- set n=0
- for %%i in ("%%a\*.*") do (
- set /a n+=1
- ren "%%i" "%%a_!n!%%~xi"
- )
- )
复制代码
作者: asspig 时间: 2011-12-23 21:11
awk 发表于 2011-12-23 21:03
还差点,我要实现的效果是 相片里的文件名是要变成这样 相片(第一个文件) 相片_01(第二个文件) 相片_02(第三个文件) 相片_03(第四个文件)
你的脚本实现的效果是 相片_1(第一个文件) 相片_2(第二个文件) 相片_3(第三个文件)
作者: awk 时间: 2011-12-23 21:17
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /b /ad') do (
- set n=10000
- for %%i in ("%%a\*.*") do (
- set suffix=!n:~-2!
- if "!suffix!" equ "00" (
- set "newname=%%a%%~xi"
- ) else (
- set "newname=%%a_!suffix!%%~xi"
- )
- ren "%%i" "!newname!"
- set /a n+=1
- )
- )
复制代码
作者: asspig 时间: 2011-12-23 21:19
awk 发表于 2011-12-23 21:17
太感谢了,可以了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |