Board logo

标题: [文本处理] [已解决]批处理TXT文件一行最后一个数字求和 [打印本页]

作者: 2558483    时间: 2017-12-27 16:01     标题: [已解决]批处理TXT文件一行最后一个数字求和

我想求批处理代码,可以实现以下操作
1、批量提取某文件夹下N个文本的内容,任意行的行数不确定,每一行最后一个数字相加,输出结果到另一新文本文件中(输出结果.txt)
2、输出结果到另外一个文件夹,名字于原文件名相同。
作者: yhcfsr    时间: 2017-12-28 06:51

POWERSHELL
  1. $SourDir="D:\test4";#设置源目录
  2. $DestDir="D:\test3";#设置输出目录
  3. dir $SourDir *txt|foreach{
  4.     $fso=Get-Content -Path $_.fullname;
  5.     for([int]$i=0;$i -le 5;$i++){
  6.         $str=$fso[$fso.Count-1]|%{$_.split()[$i]};
  7.         if($i -eq 5){$t="`t"+"`t"}else{$t="`t"};
  8.         -join($str,$t)|Out-File -FilePath $DestDir\$_ -Append -NoNewline};
  9.    
  10.     for([int]$i=7;$i -le 12;$i++){
  11.         $str= ($fso|%{$_.split()[$i]}|Measure-Object -Sum|%{$_.sum}|%{'{0:0.00}' -f $_});
  12.          -join($str,"`t")|Out-File -FilePath $DestDir\$_ -Append -NoNewline};
  13.    
  14. }
复制代码
以前没用过PS脚本的,先用下面代码解除限制,代码保存为bat文件,管理员身份执行
  1. powershell -c "Set-ExecutionPolicy Unrestricted"
复制代码

作者: 2558483    时间: 2017-12-28 10:58

运行了。没输出结果啊。
作者: 2558483    时间: 2017-12-28 11:00

回复 2# yhcfsr
输出不了啊。
作者: codegay    时间: 2017-12-28 11:23

这个是店面的营业数据。
作者: yhcfsr    时间: 2017-12-28 11:52

本帖最后由 yhcfsr 于 2017-12-28 12:31 编辑

回复 4# 2558483


把你改的代码贴出来,把脚本运行的结果图也发上来
作者: 2558483    时间: 2017-12-28 14:24

回复 6# yhcfsr
代码我直接复制的你的,没做改动,文件夹也按你的建的。。运行的时候闪一下就关闭了。。我看test3 文件夹是空的。
作者: yhcfsr    时间: 2017-12-28 14:44

本帖最后由 yhcfsr 于 2017-12-28 14:45 编辑

回复 7# 2558483


    加我QQ 33892006,我需要具体看看你的操作,因为我这边测试没有问题。这个脚本本身就是闪一下就关闭的,我没写多余的提示文本。
如果加了批处理之家1群的话,在群里搜我QQ
作者: 慕夜蓝化    时间: 2018-2-5 19:22

  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. set/a strNCount=0,strN=0
  4. for /f "delims=" %%i in (源文件.txt) do (
  5. for %%A in (%%i) do set str=%%A&set/a strN=%%A 2>nul
  6. set endLine=%%i
  7. call set endLine=%%endLine:!str!=%%
  8. set/a strNCount+=strN
  9. )
  10. for %%i in (!endLine!) do (
  11. set/p= %%i <nul
  12. )
  13. echo,!strNCount!
  14. pause
复制代码





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