中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 10:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教批量修改长文件夹名称,急! 查看 1,032 回复 6
楼 主 请教批量修改长文件夹名称,急! 发表于 2009-09-03 23:12 ·  中国 浙江 宁波 鄞州区 电信
新手上路
积分 4
发帖 4
注册 2009-09-03 05:54
16年会员
UID 151403
性别 女
状态 离线
请教各位大侠,批量修改长文件夹名称(截取前几位,后面的删除),每个文件夹的名称长度不同,文件夹里面有内容(文件和文件夹),要保持不变。每年都有几百个这样的文件夹啊, 先谢谢啦!
例如文件夹名“(鲁)证书200802600012京东区张三” 改为 “(鲁)证书200802600012”
“(鲁)证书200802600015沙河区李加顺” 改为 “(鲁)证书200802600015”

[ Last edited by andeena on 2009-9-3 at 23:18 ]
2 发表于 2009-09-04 00:10 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
16年会员
UID 151201
性别 男
状态 离线
不知道好不好改,for懂一点,但是不知道怎么区分数字和中文。。。
中间又没有分隔符什么的。。。
3 发表于 2009-09-04 00:23 ·  中国 浙江 宁波 鄞州区 电信
新手上路
积分 4
发帖 4
注册 2009-09-03 05:54
16年会员
UID 151403
性别 女
状态 离线
名称前几位是固定的长度,都是证书号(有文字也有数字),后面的名称不固定长度
4 发表于 2009-09-04 00:49 ·  中国 陕西 安康 电信
初级用户
积分 58
发帖 29
注册 2008-08-15 19:21
17年会员
UID 123291
性别 男
状态 离线

@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
5 发表于 2009-09-04 00:57 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@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
6 发表于 2009-09-04 04:54 ·  中国 浙江 宁波 鄞州区 电信
新手上路
积分 4
发帖 4
注册 2009-09-03 05:54
16年会员
UID 151403
性别 女
状态 离线
非常感谢楼上的 tireless ,真是高手,成功啦。谢谢,真是帮了我的大忙。
7 发表于 2009-09-04 04:58 ·  中国 浙江 宁波 鄞州区 电信
新手上路
积分 4
发帖 4
注册 2009-09-03 05:54
16年会员
UID 151403
性别 女
状态 离线
也谢谢其他几位热心的同学,又学习了
论坛跳转: