Board logo

标题: 请教对多个文件夹下的文件名操作 [打印本页]

作者: hcgkiller     时间: 2008-2-29 22:09    标题: 请教对多个文件夹下的文件名操作

目录下有多个文件夹
要把每个文件夹下的TXT文件名重命名为各自的上级文件夹同名

比如:  原文件                     目标:        
         d:\abc\12.txt         d:\abc\abc.txt     
         d:\bnv\11.txt         d:\bnv\bnv.txt
         d:\nnn\22.txt         d:\nnn\nnn.txt
         ..................          .....................

将txt自动重命名为与文件夹同名的TXT

请大家赐教!!感谢!
作者: hcgkiller     时间: 2008-2-29 22:22
前辈出手啊
作者: terse     时间: 2008-2-29 22:25
如有多个文件怎么办?

@echo off
for /f "delims=" %%i in ('dir /s /b /a-d "*.txt" 2^>nul') do (
    for /f "tokens=*" %%a in ("%%~fi\..") do  ren "%%~fi" "%%~na%%~xi"
)
pause

[ Last edited by terse on 2008-2-29 at 10:54 PM ]
作者: suntb     时间: 2008-2-29 22:55
楼主意思是将某个分区的根目录下所有文件夹中的txt自动重命名为与文件夹同名的TXT?
作者: ngd     时间: 2008-3-1 23:17

@echo off
for /f "delims=" %%a in ('dir /s/b/ad') do (
    for /f "delims=" %%b in ('dir /b "%%a"\*.txt') do (
        ren "%%a\%%b" "%%~na%%~xb"
    )
)
如果同一目录下有多个txt文件就使用下面的代码
@echo off & SetLocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /s/b/ad') do (
    set num=1000
    for /f "delims=" %%b in ('dir /b "%%a"\*.txt') do (
        set /a num+=1
        ren "%%a\%%b" "%%~na-!num:~-3!%%~xb"
    )
)
[ Last edited by ngd on 2008-3-1 at 11:18 PM ]