标题: [文件操作] 批处理如何提取多个文本指定行中的特定字符串来重命名文本文件并移动到相应的文件夹里 [打印本页]
作者: sweet惜缘 时间: 2011-11-20 23:25
本帖最后由 pcl_test 于 2016-8-5 22:41 编辑
批处理如何根据实现文件内容定文件名,并把该文件依次放入各相应文件夹
我现在有一批文件,每个文件第一行内容为“ligand_atom_file ../../1_struct/3_p0.0.mol2”,“ligand_atom_file ../../1_struct/3_p0.1.mol2”,“ligand_atom_file ../../1_struct/3_p0.2.mol2”,......“ligand_atom_file ../../1_struct/3_p0.n.mol2”。需要用批处理把每个文件的名字相应的改为“3_p0.0.mol2”,“3_p0.1.mol2”,“3_p0.2.mol2”,.....“3_p0.n.mol2”。并把它们放入各相应的文件夹“文件夹0,文件夹1,文件夹2,....文件夹n”.
恳请各位大侠帮忙!!
谢谢!
作者: CrLf 时间: 2011-11-20 23:45
看着很乱,楼主能不能整理一下
作者: sweet惜缘 时间: 2011-11-21 00:13
不好意思,表达不清,我重描述下:我现在有一批文件如下
文件0.txt,文件内容第一行为“ligand_atom_file ../../1_struct/3_p0.0.mol2”
文件1.txt,文件内容第一行为“ligand_atom_file ../../1_struct/3_p0.1.mol2”
文件2.txt,文件内容第一行为“ligand_atom_file ../../1_struct/3_p0.2.mol2”
..........
文件n.txt,文件内容第一行为“ligand_atom_file ../../1_struct/3_p0.n.mol2”
现在需要把文件0.txt的文件名改为3_p0.0.mol2,改好后把该文件放在文件夹0内,
文件1.txt的文件名改为3_p0.1.mol2,改好后把该文件放在文件夹1内
文件2.txt的文件名改为3_p0.2.mol2,改好后把该文件放在文件夹2内
.....,
文件n.txt的文件名改为3_p0.n.mol2,改好后把该文件放在文件夹n内.
不知这次描述清楚没?
再次感谢!
作者: yangfengoo 时间: 2011-11-21 08:24
- @echo off
- for %%a in (*.txt) do (
- md %%~na
- move /y "%%a" "%%~na/3_p0.%%~na.mol2.txt"
- )
- pause
复制代码
作者: sweet惜缘 时间: 2011-11-21 20:44
试了下,可以把文件移到相应文件夹,但文件的文件名与文件的内容还是不相符。不过已经帮了我很大忙了。
!再次拜谢
作者: yangfengoo 时间: 2011-11-21 20:56
具体是怎么不相符?把问题说清楚
作者: sweet惜缘 时间: 2011-11-21 22:24
比如说:文件1.txt的文件名改为了3_p0.1.mol2,但该文件第一行的内容仍然是“3_p0.0.mol2”,我也需要把第一行中的“3_p0.0.mol2”改为“3_p0.1.mol2”.可能是我没把问题交代清楚,我需要根据文件的的内容改文件名。即文件的内容为"3_p0.0.mol2",这个文件名就要是“3_p0.0.mol2”;文件的内容为“3_p0.n.mol2”,该文件的文件名就要是“3_p0.n.mol2”.
谢谢!
作者: sweet惜缘 时间: 2011-11-22 22:39
为什么没人回答我的问题啊?是不是我的问题交代的不清楚?麻烦哪位高人帮下忙,现在急着用,学来不及啊。
谢谢!
作者: sweet惜缘 时间: 2011-11-23 22:18 标题: 批处理如何提取多个文本指定行中的特定字符串来重命名文本文件并移动到相应的文件夹里
本帖最后由 pcl_test 于 2016-8-5 22:45 编辑
我现在有一个文件,文件的第一行内容中含有“3_p0.0.mol2”,此文件名也为“3_p0.0.mol2”
现在需要在此文件的基础上生成一批文件,生成的各文件名要与文件内容相符。比如:
生成文件“3_p0.1.mol2”,此文件的第一行内容“3_p0.0.mol2”也应相应变为“3_p0.1.mol2”
生成文件“3_p0.2.mol2”,此文件的第一行内容“3_p0.0.mol2”也应相应变为“3_p0.2.mol2”
生成文件“3_p0.3.mol2”,此文件的第一行内容“3_p0.0.mol2”也应相应变为“3_p0.3.mol2”
.......
生成文件“3_p0.n.mol2”,此文件的第一行内容“3_p0.0.mol2”也应相应变为“3_p0.n.mol2”
谢谢!
作者: awk 时间: 2011-11-23 23:47
http://bbs.bathome.net/thread-14779-1-1.html
问题描述不清楚发再多帖子也没用
作者: yangfengoo 时间: 2011-11-24 00:24
运行前做好备份- @echo off
- for %%a in (*.txt) do (
- md %%~na
- echo ligand_atom_file ../../1_struct/3_p0.%%~na.mol2 >"%%~na/3_p0.%%~na.mol2.txt"
- more +1 "%%a" >>"%%~na/3_p0.%%~na.mol2.txt"
- del *.TXT
- )
复制代码
作者: Hello123World 时间: 2011-11-24 15:44
- @echo off
- Set /a m=0,n=100
- ::生成100个文件,可自定义(修改n的值)
- :loop
- >>3_p0%m%.mol2.txt echo 3_p0%m%.mol2
- Set /a m+=1
- If %m% gtr %n% exit
- goto loop
复制代码
作者: CrLf 时间: 2011-11-24 16:03
初来不知版规也罢,对新人不会太追究,可是上次已经将你发的重复主题合并了怎么现在又发?不知道在原帖顶楼修改吗?
主题操作本来就比较麻烦,楼主还如此锲而不舍地发重复贴,故意找版主麻烦么?
再合并一次,如果再发重复贴,删无赦。
作者: sweet惜缘 时间: 2011-11-24 18:31
回复 13# Hello123World
你好,麻烦再打扰下。你说的方法可以生成所需文件。但文件内容只有“3_p0.n.mol2”,怎样才能只改变“3_p0.n.mol2”中的“n”,而文件其他的内容不变
作者: Hello123World 时间: 2011-11-25 13:48
回复 15# sweet惜缘
请尊重版主的辛劳,不要重复发帖。
你要把 n 改成什么?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |