Board logo

标题: [技术讨论] PowerShell批量替换多个文件中某列的内容 [打印本页]

作者: PS2.0    时间: 2017-8-17 14:59     标题: PowerShell批量替换多个文件中某列的内容

需求:
http://bbs.bathome.net/thread-45052-1-1.html

批量修改txt文件,分隔符是“,”,形如:
...
编号11,15.5,11.7,14.4,19.7,3163897,36593100.00
编号12,15.5,11.7,13.9,18.6,2376942,27510228.00
...
然后修改,将最后一列去掉,将第五列数据再粘贴一次到最后面,就好像:
...
编号11,15.5,11.7,14.4,19.7,3163897,19.7
编号12,15.5,11.7,13.9,18.6,2376942,18.6
...

代码:
  1. $folder = "bathome.net"
  2. New-Item "$folder" -ItemType directory
  3. Get-ChildItem *.txt | %{
  4.     $NewName = $folder + '\' + $_.Name
  5.     Get-Content $_ | %{
  6.         $a = $_ -split ','; $a[6]=$a[4]; $a -join ','
  7.     } | Out-File "$NewName"
  8. }
复制代码

作者: qazplm    时间: 2017-8-17 23:04

  1. [void](md ($fd='result\') -for);
  2. dir . *.txt|%{gc $_|%{
  3.         $_ -replace '^((?:[^,]+,){4}([^,]+),.+?,)[^,]+$','$1$2';
  4.     }|out-file ($fd+$_.Name) -enc default;
  5. }
复制代码

作者: PS2.0    时间: 2017-8-18 09:31

回复 2# qazplm


    我忘了写 -Encoding Default 确实加上比较好




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