[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 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”.
   恳请各位大侠帮忙!!  
   谢谢!

TOP

看着很乱,楼主能不能整理一下

TOP

不好意思,表达不清,我重描述下:我现在有一批文件如下
文件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内.
     不知这次描述清楚没?
     再次感谢!

TOP

  1. @echo off
  2. for %%a in (*.txt) do (
  3.      md %%~na
  4.      move /y "%%a" "%%~na/3_p0.%%~na.mol2.txt"
  5.    )
  6. pause
复制代码

TOP

试了下,可以把文件移到相应文件夹,但文件的文件名与文件的内容还是不相符。不过已经帮了我很大忙了。
    !再次拜谢

TOP

具体是怎么不相符?把问题说清楚

TOP

比如说:文件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”.
  谢谢!

TOP

为什么没人回答我的问题啊?是不是我的问题交代的不清楚?麻烦哪位高人帮下忙,现在急着用,学来不及啊。
谢谢!

TOP

[文件操作] 批处理如何提取多个文本指定行中的特定字符串来重命名文本文件并移动到相应的文件夹里

本帖最后由 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”
谢谢!
1

评分人数

    • CrLf: 重复发帖PB -2

http://bbs.bathome.net/thread-14779-1-1.html
问题描述不清楚发再多帖子也没用
1

评分人数

    • CrLf: 感谢主动维护论坛管理!PB + 5

TOP

运行前做好备份
  1. @echo off
  2. for %%a in (*.txt) do (
  3.      md %%~na
  4. echo ligand_atom_file     ../../1_struct/3_p0.%%~na.mol2 >"%%~na/3_p0.%%~na.mol2.txt"
  5. more +1 "%%a" >>"%%~na/3_p0.%%~na.mol2.txt"
  6.      del *.TXT
  7.    )
复制代码

TOP

  1. @echo off
  2. Set /a m=0,n=100
  3. ::生成100个文件,可自定义(修改n的值)
  4. :loop
  5. >>3_p0%m%.mol2.txt echo 3_p0%m%.mol2
  6. Set /a m+=1
  7. If %m% gtr %n% exit
  8. goto loop
复制代码

TOP

初来不知版规也罢,对新人不会太追究,可是上次已经将你发的重复主题合并了怎么现在又发?不知道在原帖顶楼修改吗?
主题操作本来就比较麻烦,楼主还如此锲而不舍地发重复贴,故意找版主麻烦么?
再合并一次,如果再发重复贴,删无赦。

TOP

回复 13# Hello123World


    你好,麻烦再打扰下。你说的方法可以生成所需文件。但文件内容只有“3_p0.n.mol2”,怎样才能只改变“3_p0.n.mol2”中的“n”,而文件其他的内容不变

TOP

回复 15# sweet惜缘


    请尊重版主的辛劳,不要重复发帖。

你要把 n 改成什么?

TOP

返回列表