Board logo

标题: 请教批量修改长文件夹名称,急! [打印本页]

作者: andeena     时间: 2009-9-3 23:12    标题: 请教批量修改长文件夹名称,急!

请教各位大侠,批量修改长文件夹名称(截取前几位,后面的删除),每个文件夹的名称长度不同,文件夹里面有内容(文件和文件夹),要保持不变。每年都有几百个这样的文件夹啊, 先谢谢啦!
例如文件夹名“(鲁)证书200802600012京东区张三”   改为 “(鲁)证书200802600012”
            “(鲁)证书200802600015沙河区李加顺” 改为 “(鲁)证书200802600015”

[ Last edited by andeena on 2009-9-3 at 23:18 ]
作者: loquat     时间: 2009-9-4 00:10
不知道好不好改,for懂一点,但是不知道怎么区分数字和中文。。。
中间又没有分隔符什么的。。。
作者: andeena     时间: 2009-9-4 00:23
名称前几位是固定的长度,都是证书号(有文字也有数字),后面的名称不固定长度
作者: keen     时间: 2009-9-4 00:49

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /ad') do (
    set str=%%i
    for /f "tokens=2 delims=0123456789" %%a in ("%%i") do (
        set str=!str:%%a=!
        echo ren "%%i" "!str!"
    )
)
pause

作者: tireless     时间: 2009-9-4 00:57

@echo off
echo 将重命名 "%cd%\" 下的文件夹名称,新名称为旧名称的前 17 位
set choice=

:input
set /p choice=是否继续(Y/N)?
if /i "%choice%" equ "n" exit /b
if /i "%choice%" neq "y" goto input

for /f "delims=" %%a in ('dir /a:d /b') do (
    set var=%%a
    setlocal enabledelayedexpansion
    ren "!var!" "!var:~,17!"
    endlocal
)
echo 重命名完成。请按任意键退出...
pause>nul

作者: andeena     时间: 2009-9-4 04:54
非常感谢楼上的 tireless ,真是高手,成功啦。谢谢,真是帮了我的大忙。
作者: andeena     时间: 2009-9-4 04:58
也谢谢其他几位热心的同学,又学习了