[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] 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. }
复制代码
环境所限,需要使用 PowerShell 2.0 版本。

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

评分人数

    • PS2.0: 感谢分享技术 + 1

TOP

回复 2# qazplm


    我忘了写 -Encoding Default 确实加上比较好
环境所限,需要使用 PowerShell 2.0 版本。

TOP

返回列表