Board logo

标题: [文本处理] 【已解决】批处理修改目录下所有文件的特定行 [打印本页]

作者: secifidian    时间: 2019-4-13 15:32     标题: 【已解决】批处理修改目录下所有文件的特定行

本帖最后由 secifidian 于 2019-4-13 16:31 编辑

我想要将D:\2F下所有文件的第二行修改为‘b3lyp/6-311g pop=nboread’,第18行修改为‘$NBO NAOMO $END’,并删除19行之后的内容。
作者: zaqmlp    时间: 2019-4-13 15:49

本帖最后由 zaqmlp 于 2019-4-13 16:15 编辑

打包个文件发出来吧
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. start mshta VBScript:Execute("msgbox(""%info%""):close")
  6. cd /d "%~dp0"
  7. set "文件夹=D:\2F"
  8. md "%文件夹%\结果" 2>nul
  9. powershell ^
  10.     dir -liter '%文件夹%' *.txt^|?{$_ -is [System.IO.FileInfo]}^|%%{^
  11.         write-host $_.FullName;^
  12.         $text=@(gc $_.FullName);^
  13.         $text[1]='b3lyp/6-311g pop=nboread';^
  14.         $text[17]='$NBO NAOMO $END';^
  15.         [IO.File]::WriteAllLines(('%文件夹%\结果\'+$_.Name), $text[0..18], [Text.Encoding]::Default);^
  16.     }
  17. pause
复制代码

作者: ivor    时间: 2019-4-13 16:11

  1. dir -Path D:\2F | %{$data = gc $_ -TotalCount 19;$data[1] = 'b3lyp/6-311g pop=nboread'; $data[17] = '$NBO NAOMO $END';}
复制代码

作者: secifidian    时间: 2019-4-13 16:26

回复 2# zaqmlp

多谢大佬,但是我的文件并不是文本文件
作者: zaqmlp    时间: 2019-4-13 16:30

回复 4# secifidian
把*.txt去掉或改为*.gjf
作者: secifidian    时间: 2019-4-13 16:31

回复 2# zaqmlp
谢谢大佬,我已经解决了。




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