中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]以文件内容首行重命名
作者:
标题: [求助]以文件内容首行重命名 上一主题 | 下一主题
heimukai
新手上路





积分 6
发帖 2
注册 2007-9-8
状态 离线
『楼 主』:  [求助]以文件内容首行重命名

操作系统WINXP+SP2
本人有很多TXT和DOC文件,放在不同的文件夹1,2,3,4...
1.文件多数是数字构造,没有特定的规律;
2.文件首行文字为中文,但有的是首行空行,第二行是文字,除了(空白键)没有其他特殊字符;
目标:
希望能将文件重命名为首行文本内容(首行空行则先删除首行)

这个是我找的,但是用了以后只能保留10个汉字(20字符),而且文本首行必须不是空行?
请高手指点一下,本人刚刚接触DOS不久,里面的语句都还不是特别清楚,

@echo off
setlocal  ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in ('dir /s/b *.txt') do (
                        for /f "tokens=1,2 delims=:" %%i in ('findstr /n "." "%%a                          "') do (
                                set n=%%j
                                if "%%i"=="1" (ren "%%~nxa" "!n:~0,20!.txt" 2>nul) else (
                                                if "%%i"=="2" (ren "%%~nxa" "!n:~0,20!.txt" 2>nul )))
                                                        
                        )
)        
endlocal


;;批量删除文本文件中的空行
@echo off
if {%1}=={} goto :EOF
:begin
if {%1}=={} goto end
call :DelBlank %1
shift
goto begin
:DelBlank
if not exist %1 goto :EOF
echo Deleting Balnk Lines in %1
echo.
type %1 | findstr /V "^$" >C:\_tmp.Shilyx
type C:\_tmp.Shilyx>%1
goto :EOF
:end
if exist C:\_tmp.Shilyx del C:\_tmp.Shilyx
echo Process Succeed, press any key to exit ...
pause>nul

2007-9-8 15:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  


@echo off
setlocal enabledelayedexpansion
for /r %%i in (*.txt) do (
set num=0
for /f "usebackq delims=" %%a in ("%%i") do (
   set /a num+=1
   if !num!==1 ren "%%i" "%%a.txt"
)
)
pause
这样?不能对doc格式文件处理

2007-9-8 16:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: