Board logo

标题: 如何利用批处理或者dos更改文件名中的一部分 [打印本页]

作者: hanwee     时间: 2006-4-10 10:16    标题: 如何利用批处理或者dos更改文件名中的一部分

文件夹中有大量文件,文件名如 工作文档1数学组.txt 工作文档2数学组.txt

现在我想删除工作文档和数学组的字符,让文件成为1.txt;2.txt怎么办
作者: doscc     时间: 2006-4-10 10:55

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

我试过了.可以.
楼主使用前最好试一下.

作者: hanwee     时间: 2006-4-11 09:22
for %%t in (*.txt) do (
set a=%%t
ren %%t !a:~4,1!.txt

这里面 %%t  表示什么?
后面的  !a:~4,1!表示什么?
作者: doscc     时间: 2006-4-11 09:44
%%t
指定一个单一字母可替换的参数。
祥细说明 参考 for /?

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

!a:~4,1!
取变量 a 左边的 4个字符 以外的乘余字符.再取得乘余字符 左边的 第 1个字符.
祥细说明 参考 set /?
作者: hanwee     时间: 2006-4-11 19:22
我在xp的命令行里面输入不过输入到
for %%t in (*.txt) do (
系统说:“此时不应有%%t”
作者: 3742668     时间: 2006-4-11 21:16
唉,在命令行中应该为%t而不是%%t,这点好多贴子里面都有提到过。
建议多翻老贴多看 “帮助与支持”。
作者: hanwee     时间: 2006-4-12 10:56
帮助里面说要用%%,我看掉了前面还有批处理三个字