楼 主
运行一次批处理多次修改文件名?
发表于 2007-10-17 11:56 · 中国 四川 绵阳 电信
新手上路
★
积分 12 发帖 5 注册 2007-10-17 11:29 UID 99955 性别 男
状态 离线
我的批处理功能如下:
有若干个文件:1.txt 2.txt ……999.txt。现在想修改成 1文化.txt 2文化.txt……999文化.txt
批处理程序如下:
@echo off
setlocal enabledelayedexpansion
for %%i in (*.*) do (
set name=%%i
set n1=!name:~0,-4!
set n2=!name:~-4!
ren %%i !n1!c!n2!
)
但是在测试的时候发现有的文件进行了多次改名。如1文化文化.txt,但是大部分都是正确的一次修改,还请各位大大帮忙指出错误!
第 2 楼
发表于 2007-10-17 11:57 · 中国 四川 绵阳 电信
新手上路
★
积分 12 发帖 5 注册 2007-10-17 11:29 UID 99955 性别 男
状态 离线
倒数第二行为:
ren %%i !n1!文化!n2!
刚才是测试代码,忘了改正了
第 3 楼
发表于 2007-10-17 13:22 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 UID 73968 性别 男
状态 离线
@echo off
for %%i in (*.*) do ren "%%i" "%%~ni文化%%~xi"
[
Last edited by 26933062 on 2007-10-17 at 01:24 PM ]
致精致简!
第 4 楼
发表于 2007-10-17 16:05 · 中国 四川 绵阳 电信
新手上路
★
积分 12 发帖 5 注册 2007-10-17 11:29 UID 99955 性别 男
状态 离线
多谢楼上,%%~ni应该是代表的.之前的内容吧?
但是多次运行这个批处理之后,还是会出现文件多次修改。如运行2次之后,有的文件名会多出一个“文化”出来,即3个文化,如: 1文化文化文化.txt
请问这个如何解决啊?应该不是批处理程序的问题
第 5 楼
发表于 2007-10-17 21:28 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 UID 73968 性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
for %%i in (*.*) do (
set var=%%~ni
set var=!var:文化=!
ren "%%i" "!var!文化%%~xi"
)
致精致简!
第 6 楼
发表于 2007-10-17 21:42 · 中国 四川 绵阳 电信
新手上路
★
积分 12 发帖 5 注册 2007-10-17 11:29 UID 99955 性别 男
状态 离线
多谢帮忙哈,还是有那个问题,可能文件数太多(500个),造成处理时重复了吧?
不过还好我只要求.txt前面有 文化 就可以了,感谢!!
第 7 楼
发表于 2007-10-17 21:49 · 中国 四川 绵阳 电信
新手上路
★
积分 12 发帖 5 注册 2007-10-17 11:29 UID 99955 性别 男
状态 离线
不好意思,刚才用的时候没弄清楚,现在好了,感谢26933062!
第 8 楼
发表于 2007-10-18 14:44 · 中国 云南 西双版纳傣族自治州 电信
初级用户
★★
积分 100 发帖 52 注册 2006-03-02 15:06 UID 51231 来自 云南
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正