中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]以第一行文字为名字命名文件夹里的所有txt文档
作者:
标题: [已结]以第一行文字为名字命名文件夹里的所有txt文档 上一主题 | 下一主题
fengch1
新手上路





积分 6
发帖 5
注册 2009-2-8
状态 离线
『楼 主』:  [已结]以第一行文字为名字命名文件夹里的所有txt文档

要求 一个文件夹里的所有txt文档以第一行文字为名字 命名~

注意 第一行文字 应为 前面有很多的空行 如果去掉空行也可以

───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2009-02-09]在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"能否帮忙写个文本批处理"不利于论坛搜索
处罚:论坛新人免于积分处罚
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{27314}反面教材:本论坛“精彩”标题小集
{32667}愤怒:那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by fengch1 on 2009-3-7 at 12:29 ]

2009-2-9 20:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 2 楼』:  

@echo off
for /f %%a in ('dir /a-d/b') do call :sub %%a
goto :eof
:sub
for /f "delims=" %%c in (%1) do ren %1 %%~nxc&goto :eof

   此帖被 +2 点积分    点击查看详情   
评分人:【 zhengqian529 分数: +2  时间:2009-2-10 16:18




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-2-9 21:52
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
fengch1
新手上路





积分 6
发帖 5
注册 2009-2-8
状态 离线
『第 3 楼』:  

谢谢2楼的~
不过~似乎不行啊  '命名语法不正确'

那个每个文本前面有很多空

[ Last edited by fengch1 on 2009-2-10 at 18:58 ]

2009-2-10 18:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 4 楼』:  哦,那改下。。。

@echo off
for /f %%a in ('dir /a-d/b') do call :sub %%a
goto :eof
:sub
for /f "tokens=*" %%c in (%1) do (
if not "%%c"=="" ren %1 %%~nxc&goto :eof
)



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-2-10 22:19
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
fengch1
新手上路





积分 6
发帖 5
注册 2009-2-8
状态 离线
『第 5 楼』:  

喔~~
还是不行吖~
不过好多了
命名出来的文档都是没有加尾缀~
而且都是重复的一个~

[ Last edited by fengch1 on 2009-2-11 at 18:13 ]

2009-2-11 18:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 6 楼』:  

代码 1:
@echo off
for %%a in (*.txt) do call :ren "%%a"
exit

:ren
for /f "tokens=*" %%a in (%~s1) do (
  ren %1 "%%a.txt"
  goto :eof
)
代码 2:
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do (
  set /p new=<"%%a"
  ren "%%a" "!new!.txt"
)
[ Last edited by tireless on 2009-2-11 at 18:39 ]

2009-2-11 18:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 7 楼』:  

@echo off
:: 可处理长文件名
for /f "tokens=*" %%a in ('dir/a-d/b') do (
        set "a=%%a"
        setlocal enabledelayedexpansion
        call :sub
        endlocal
)
goto :eof

:sub

::回避自身
if "!a!"=="%~nx0" goto :eof
::if 的判断是为了避开含只有空格和[TAB]键的行
for /f "tokens=*" %%c in ('type "!a!"') do if not "%%c"=="" (ren "!a!" "%%c"&goto :eof)


::如此可处理绝大部分特殊情况



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-2-11 20:33
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
fengch1
新手上路





积分 6
发帖 5
注册 2009-2-8
状态 离线
『第 8 楼』:  

谢谢了  虽然文本依然没有尾缀
但我自己有办法
问题解决了
非常感谢喔~

2009-2-14 15:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  Re 8楼

如果有人帮你解决了问题,建议进行如下操作:

1、修改帖子标题,注明:[已结]

2、给正确回答问题者加分以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。

3、如果你是在别人的提示下自己写出了代码,请把自己的方法贴出来跟大家分享下,也许他人可以帮你指出代码中的不足之处、告诉你如何提高执行效率等,有交流才能更快地进步。




2009-2-14 17:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: