Board logo

标题: 请教一个文本文件批量重命名 [打印本页]

作者: dddyjq1     时间: 2008-8-6 22:20    标题: 请教一个文本文件批量重命名

能否帮忙写一个文本文件批量改名的批处理?要求有:将同一文件夹下的按1、2、3....的.TXT文件改成文件中“开放分类: ”所处行的前一行内容为文件名
附件 1: 1.txt (2008-8-6 22:20, 13.62 K,下载次数: 30)

作者: dddyjq1     时间: 2008-8-7 20:42
顶一下,请各位看看想想,先谢了
作者: dddyjq1     时间: 2008-8-9 22:49
请各位高手帮忙想想
作者: moniuming     时间: 2008-8-10 01:19
试试这个?
如果文件内容不包含"开放分类"这几个字会出错,确认无误后请把最后一行(echo ren %1 "!dos%m%!.txt")前的"echo"去掉.
@echo off
Setlocal Enabledelayedexpansion
for %%i in (*.txt) do call :ren_ "%%i"
pause&goto :eof
:ren_
for /f "tokens=1* delims=:" %%a in ('findstr /n .* %1') do (set "dos%%a=%%b")
for /f "tokens=1 delims=:" %%c in ('findstr /n 开放分类 %1') do (set /a "m=%%c-1")
echo ren %1 "!dos%m%!.txt"

作者: dddyjq1     时间: 2008-8-14 22:45
如果文件内容不包含"开放分类"就取第一行不是空格的内容,

4楼的文件运行时只会在屏幕上显示不会改名


先谢了
作者: HAT     时间: 2008-8-14 22:47    标题: Re 5楼

别人的代码,你看都不看就直接运行吗?
起码要把最后一行的echo删除嘛
作者: dddyjq1     时间: 2008-8-14 22:54
不好意思,没有注意,谢了,能否再加一条件
如果文件内容不包含"开放分类"就取第一行不是空格的内容,
作者: dddyjq1     时间: 2008-8-15 23:26
再请各位高手看看