找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25538|回复: 6

[文本处理] BAT怎样批量修改 指定位置php文件固定行不同内容?

[复制链接]
发表于 2019-5-1 22:13:14 | 显示全部楼层 |阅读模式
BAT怎样批量修改 指定位置php文件固定行不同内容?

多个指定位置php文件,需要修改这些文件中的特定一行,比如第5行中的内容,把这一行的内容按照列表中内容进行修改。

例子:
有多个指定文件
D:\mulu1\mulu1\mulu1\1.php
D:\mulu2\mulu2\mulu2\2.php
D:\mulu3\mulu3\mulu3\1.php
....

同时有一个文本文件a.txt里面的内容如下
文件位置                   第5行修改为
D:\mulu1\mulu1\mulu1\1.php $cfg_dbname = 'ceshi1';
D:\mulu1\mulu1\mulu1\1.php $cfg_dbname = 'ceshi2';
D:\mulu1\mulu1\mulu1\1.php $cfg_dbname = 'ceshi3';

需要把1,2,3等文件中的第5行,按照文本文件a.txt中进行修改,把1.php中第5行改为$cfg_dbname = 'ceshi1';;
把2.php中第5行改为$cfg_dbname = 'ceshi2';,把3.php中第5行改为$cfg_dbname = 'ceshi3';........
 楼主| 发表于 2019-5-1 22:22:52 | 显示全部楼层
麻烦大家帮我解决一下  谢谢了
发表于 2019-5-1 22:50:30 | 显示全部楼层
本帖最后由 yhcfsr 于 2019-5-1 22:57 编辑

两个问题:
1.a.txt 两列之间的分隔符是不是TAB,如果不是最好改为tab
2.php文件的文本编码是什么?

假设 a.txt列分隔符为tab,php为UTF8,请将以下代码保存为bat,并做好用户设置.
测试前一定要备份源文件
  1. @Powershell "& {[ScriptBlock]::Create("'#' + ([io.file]::ReadAllText('%~f0',[text.encoding]::Default))").Invoke()}" & pause & exit

  2. #=========用户设置=========
  3. $list_txt = 'a.txt'; # 指定列表文件
  4. $line_num = 5; # 指定修改第几行

  5. #=========主程序开始=========
  6. foreach($line in (type $list_txt -ReadCount 0))
  7. {
  8.     $path, $info = $line -split "`t"
  9.     if([io.fileinfo]::new($path).Exists)
  10.     {
  11.         $text = type $path -ReadCount 0;
  12.         $text[$line_num - 1] = $info;
  13.         [io.file]::WriteAllLines($path, $text, [text.encoding]::UTF8)
  14.     }
  15. }
复制代码
 楼主| 发表于 2019-5-1 23:28:35 | 显示全部楼层
回复 3# yhcfsr


    你好,分隔符我可以改成TAB,但是PHP编码是ansi,
这样我可以用以上编码运行吗?

有劳了,真心谢谢
 楼主| 发表于 2019-5-1 23:38:36 | 显示全部楼层
回复 3# yhcfsr


   我把分隔符改成TAB,编码最下面的UTF8改成ANSI,然后运行显示错误
发表于 2019-5-1 23:58:34 | 显示全部楼层
你把ANSI改为Default
 楼主| 发表于 2019-5-2 10:45:15 | 显示全部楼层
回复 6# yhcfsr


    好的,可以加你个联系方式吗,非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:57 , Processed in 0.017805 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表