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

[文本处理] [已解决]批处理TXT文件一行最后一个数字求和

[复制链接]
发表于 2017-12-27 16:01:35 | 显示全部楼层 |阅读模式
我想求批处理代码,可以实现以下操作
1、批量提取某文件夹下N个文本的内容,任意行的行数不确定,每一行最后一个数字相加,输出结果到另一新文本文件中(输出结果.txt)
2、输出结果到另外一个文件夹,名字于原文件名相同。
发表于 2017-12-28 06:51:06 | 显示全部楼层
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"
复制代码
 楼主| 发表于 2017-12-28 10:58:32 | 显示全部楼层
运行了。没输出结果啊。
 楼主| 发表于 2017-12-28 11:00:22 | 显示全部楼层
回复 2# yhcfsr
输出不了啊。
发表于 2017-12-28 11:23:53 | 显示全部楼层
这个是店面的营业数据。
发表于 2017-12-28 11:52:22 | 显示全部楼层
本帖最后由 yhcfsr 于 2017-12-28 12:31 编辑

回复 4# 2558483


把你改的代码贴出来,把脚本运行的结果图也发上来
 楼主| 发表于 2017-12-28 14:24:19 | 显示全部楼层
回复 6# yhcfsr
代码我直接复制的你的,没做改动,文件夹也按你的建的。。运行的时候闪一下就关闭了。。我看test3 文件夹是空的。
发表于 2017-12-28 14:44:00 | 显示全部楼层
本帖最后由 yhcfsr 于 2017-12-28 14:45 编辑

回复 7# 2558483


    加我QQ 33892006,我需要具体看看你的操作,因为我这边测试没有问题。这个脚本本身就是闪一下就关闭的,我没写多余的提示文本。
如果加了批处理之家1群的话,在群里搜我QQ
发表于 2018-2-5 19:22:01 | 显示全部楼层
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 01:43 , Processed in 0.014669 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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