中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 23:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]提取文件名的一部分作为新的文件名 查看 741 回复 4
楼 主 [已解决]提取文件名的一部分作为新的文件名 发表于 2008-12-19 18:01 ·  中国 内蒙古 赤峰 联通
新手上路
积分 10
发帖 8
注册 2007-01-10 21:23
19年会员
UID 76080
性别 男
状态 离线
上午下了一堆补丁,文件名类似于这样:



我想把这些补丁重新命名成 KBxxxxxx.exe 的形式,(尝试了一中午,没有成功)

:( 只好请教大家了

[ Last edited by skypig on 2008-12-19 at 19:48 ]
2 发表于 2008-12-19 19:07 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
以"-"为分隔符,取第二列...
"tokens=2 delims=-"
3 发表于 2008-12-19 19:20 ·  中国 内蒙古 赤峰 联通
新手上路
积分 10
发帖 8
注册 2007-01-10 21:23
19年会员
UID 76080
性别 男
状态 离线
  for /f "tokens=2 delims=-" %%i in ('dir /on /b *.exe') do (*******) 


如果do里面做echo的话,确实可以得到一个列表,

如果想重名名似乎还得再循环一次,我有点晕了...

楼上的朋友能给一段代码吗,谢谢你
4 发表于 2008-12-19 19:38 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
应该要用到两层for吧,试试?放在要更名的目录里运行,如果显示是要的结果,请把echo去掉以实现更名的操作.
@echo off
for %%a in (*.exe) do (
set "name=%%~na"
setlocal enabledelayedexpansion
for /f "tokens=2 delims=-" %%b in ("!name!") do (
echo ren "%%a" "%%b%%~xa"
)
endlocal
)
echo.&pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2008-12-19 20:01
5 发表于 2008-12-19 19:47 ·  中国 内蒙古 赤峰 联通
新手上路
积分 10
发帖 8
注册 2007-01-10 21:23
19年会员
UID 76080
性别 男
状态 离线
楼上的兄弟,你的代码非常好用,谢谢你,
这远比我想象的要复杂

我收藏学习了...
论坛跳转: