Board logo

标题: [文本处理] [已解决]批处理根据每个文档内第一行批量重命名每个文档 [打印本页]

作者: useinter    时间: 2017-7-7 13:37     标题: [已解决]批处理根据每个文档内第一行批量重命名每个文档

大家好,是这样的。

文件夹内有形如1.txt、2.txt到n.txt命名的文本文档,

文档内是每节课程的简介,第一行是具体每节课名称及格式大小,每个文档第一行都是不一样的。

需要根据每个文本文档内的第一行重命名每个文本文档

不知能否实现,不会写批处理,还请会写批量的朋友帮忙下,十分感谢。



文本内的内容形如如下格式:
西安交通大学:李换琴+高等数学上+02讲+flv+38.16 MB
课程简介
高等数学是大学生的必修基础课程,特别对于理工科学生来说,高等数学理解得多少,很大程度会影响到后面专业课学习的深度,同时也会影响到逻辑思维的进一步发展。李换琴教授对高等数学的详细全面授课,会进一步提高观看者自身的数学思维,同时也会提高自身专业知识的理解能力,完善高等数学作为基础课程的巩固学习。
讲师简介
李换琴,女,1964年生,陕西韩城人。西安交通大学数学与统计学院教授,数学教学中心副主任,数学建模研究所所长
教育背景
86年获西安交通大学计算数学专业学士学位,1999年获西安交通大学计算数学专业硕士学位,2003年获西安交通大学系统工程专业博士学位,2009.3-2010.3在美国佛罗里达大学访问研究1年。
研究领域
数学建模,智能计算,数据挖掘,最优化理论及其应用。
————————————————————————————————————————————————
——————————————————————————————————————————————————————

问题已经得到解决,感谢大家。
整理如下,
刚开始几位朋友的代码都可以用,
只是稍微忽略了第一行文本里有冒号:
多谢hlzj88论友的提醒,我改掉冒号就解决了。
同时hlzj88也给出了不改的方法,感谢。

作者: happy886rr    时间: 2017-7-7 15:08

视频哪弄的?
作者: codegay    时间: 2017-7-7 15:16

回复 2# happy886rr


   网上很多公开课的视频都是可以下载的。部分大学也有开放公共课视频下载。
作者: 523066680    时间: 2017-7-7 15:40

这是要整合视频资料然后拿去淘宝卖吗
作者: useinter    时间: 2017-7-7 16:57

本帖最后由 useinter 于 2019-9-21 16:16 编辑

回复 4# 523066680


    不是淘宝卖家,发帖想提高效率节省下时间。
作者: a2002    时间: 2017-7-7 17:28

  1. @echo off&setlocal enabledelayedexpansion
  2. set "path=这儿填存放路径"
  3. for /r "!path!" %%a in (*.txt) do (set /p t=<%%a&ren %%a !t!.txt)
复制代码

作者: a2002    时间: 2017-7-7 17:31

保存为*.bat,把     这儿填存放路径     改为文件夹绝对路径
作者: 3518228042    时间: 2017-7-7 18:39

不一定拿去卖,也不一定能卖多少钱,还是有金点子赚钱,
比如色谱叠加算法,国外也在做,最后是将库固化到硬件,处理速度达到很多倍的提升,
如果激光处理器,将达到的不是几位数的提升了,分割的越多叠加越多,
前阵子看见报道中国是第3个掌握光芯片的国家,而且目前民用处于空白。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir/b *.txt') do (
  4. set/p fn=<"%%~i"
  5. ren "%%~i" "!fn!.txt"
  6. )
  7. pause
复制代码
放TXT目录运行
作者: useinter    时间: 2017-7-7 19:11

本帖最后由 useinter 于 2017-7-7 21:37 编辑

回复 8# 3518228042


    多谢帮助,好像不行,如下提示

作者: useinter    时间: 2017-7-7 19:14

本帖最后由 useinter 于 2017-7-7 21:37 编辑

回复 7# a2002


    多谢帮助,尝试多次,没有改名,更换位置也试过,不知是不是我设置错误,截图如下。


作者: hlzj88    时间: 2017-7-7 21:07

  1. @echo off
  2. echo 如果这里处理后有*.ini文件产生,就意味有文件会同名,需要人工干预。
  3. setlocal enabledelayedexpansion
  4. for /r %%a in ("*.txt")do (
  5. set /p name=<"%%a"
  6. ren "%%~nxa" "!name!.ini"
  7. )
  8. ren "*.ini" "*.txt"
复制代码

作者: useinter    时间: 2017-7-7 21:24

本帖最后由 useinter 于 2017-7-7 21:37 编辑

回复 11# hlzj88


    感谢帮助,不好意思,我刚试了,提示存在一个重命文件,或是找不到文件,然后闪掉。不知道是不是我操作不对。
作者: hlzj88    时间: 2017-7-7 21:58

第一行是不是空行,或者发几个文件打包链接上来,,文本大可以删除后面很多。
作者: useinter    时间: 2017-7-7 22:05

回复 13# hlzj88


    十分感谢仁兄的帮助,链接已上传
链接: https://pan.baidu.com/s/1o7GoKyA 密码: 66hm
作者: hlzj88    时间: 2017-7-7 22:29

文本里多了冒号,把下面的加入到上面的5  6行之间
  1. set name=!name:^:=!
复制代码

作者: useinter    时间: 2017-7-7 22:39

回复 9# useinter


    已经解决,根据坛友hlzj88的提醒,是我的文本里有冒号:导致,仁兄的方法可用,我把冒号改掉就好了。
作者: useinter    时间: 2017-7-7 22:40

回复 15# hlzj88


    多谢hlzj88兄的帮助,祝好。
作者: a2002    时间: 2017-7-8 07:12

原来有冒号,怪不得我的用不了
作者: useinter    时间: 2017-8-2 20:56

回复 15# hlzj88


    hlzj88兄,你好,今天在使用这个批量重名时,遇到这样一个问题,那就是第一行存在/这个符号,所以脚本直接没有命名这些文件,我查了下,windows详细命名中:

  1、允许文件或者文件夹名称不得超过255个字符;

  2、 文件名除了开头之外任何地方都可以使用空格;

  3、文件名中不能有下列符号:“?”、“、”、“╲”、“/”、“*”、““”、“”“、“<”、“>”、“|”;
     
       不知能否在代码里添加代码,解决文件名符号的问题,可以麻烦 hlzj88兄再完善一下脚本吗?十分感谢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2