中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 09:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何利用批处理或者dos更改文件名中的一部分 查看 1,505 回复 6
楼 主 如何利用批处理或者dos更改文件名中的一部分 发表于 2006-04-10 10:16 ·  中国 广东 惠州 电信
新手上路
积分 12
发帖 4
注册 2006-04-10 10:13
UID 53604
状态 离线
文件夹中有大量文件,文件名如 工作文档1数学组.txt 工作文档2数学组.txt

现在我想删除工作文档和数学组的字符,让文件成为1.txt;2.txt怎么办
2 发表于 2006-04-10 10:55 ·  中国 广东 广州 中移铁通
中级用户
★★
积分 256
发帖 93
注册 2006-03-26 22:12
UID 52853
性别 男
来自 广东
状态 离线

@echo off
setlocal EnableDelayedExpansion
for %%t in (*.txt) do (
set a=%%t
ren %%t !a:~4,1!.txt
)


我试过了.可以.
楼主使用前最好试一下.
3 发表于 2006-04-11 09:22 ·  中国 广东 惠州 电信
新手上路
积分 12
发帖 4
注册 2006-04-10 10:13
UID 53604
状态 离线
for %%t in (*.txt) do (
set a=%%t
ren %%t !a:~4,1!.txt

这里面 %%t 表示什么?
后面的 !a:~4,1!表示什么?
4 发表于 2006-04-11 09:44 ·  中国 广东 广州 白云区 中移铁通
中级用户
★★
积分 256
发帖 93
注册 2006-03-26 22:12
UID 52853
性别 男
来自 广东
状态 离线
%%t
指定一个单一字母可替换的参数。
祥细说明 参考 for /?

set a=%%t
把 %%t 付给变量 a
祥细说明 参考 set /?

!a:~4,1!
取变量 a 左边的 4个字符 以外的乘余字符.再取得乘余字符 左边的 第 1个字符.
祥细说明 参考 set /?
5 发表于 2006-04-11 19:22 ·  中国 广东 惠州 电信
新手上路
积分 12
发帖 4
注册 2006-04-10 10:13
UID 53604
状态 离线
我在xp的命令行里面输入不过输入到
for %%t in (*.txt) do (
系统说:“此时不应有%%t”
6 发表于 2006-04-11 21:16 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
唉,在命令行中应该为%t而不是%%t,这点好多贴子里面都有提到过。
建议多翻老贴多看 “帮助与支持”。
7 发表于 2006-04-12 10:56 ·  中国 广东 惠州 电信
新手上路
积分 12
发帖 4
注册 2006-04-10 10:13
UID 53604
状态 离线
帮助里面说要用%%,我看掉了前面还有批处理三个字
论坛跳转: