Board logo

标题: [文本处理] 【已解决】批处理怎样把文本里面的数据处理成正负两部分? [打印本页]

作者: yeyingqingfeng    时间: 2015-3-10 17:04     标题: 【已解决】批处理怎样把文本里面的数据处理成正负两部分?

一个文件夹里包含很多这样的文本数据,有很多行和很多列数据,数据有正负。拿其中一个文本举a.$101例说明,现在想把这个文本的正负数据分开保存成两个文件,一个文件只含有正数(原来文本里面的负数变成0),该文件名字在原来的基础上加Pos,即变成aPos.$101;另一个只含有负数(原来文本里面的正数变成0),该文件名字在原来的基础上加Neg,即变成aNeg.$101。文件夹里面的所有文本均这样操作,用Bat编程能实现吗?希望高手们帮帮忙,谢谢。
作者: pcl_test    时间: 2015-3-10 19:14

回复 1# yeyingqingfeng
实现不难
”一个文件只含有正数(原来文本里面的负数变成0),另一个只含有负数(原来文本里面的正数变成0)“这两句的“原来文本的正负数变成0”是何意?
作者: xxpinqz    时间: 2015-3-10 20:18

本帖最后由 xxpinqz 于 2015-3-11 12:46 编辑
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b *.$*') do (
  3.     (for /f "delims=" %%a in (%%i) do (
  4.         setlocal enabledelayedexpansion
  5.         for %%b in (%%a) do if "%%~nb"=="0" (set "pos=!pos!%%b "&set "neg=!neg!      0      ")else set "neg=!neg!%%b "&&set "pos=!pos!      0      "
  6.         echo,!neg!>>"%%~niNeg%%~xi"
  7.         echo,!pos!
  8.         endlocal
  9.     ))>"%%~niPos%%~xi"
  10. )
复制代码

作者: yeyingqingfeng    时间: 2015-3-11 10:20

回复 2# pcl_test
就是输出正数的文本里面,在原文本位置是负数的把它变成0;输出负数的文本里面,在原文本位置是正数的把它变成0,感谢您的帮助。
作者: yeyingqingfeng    时间: 2015-3-11 10:21

回复 3# xxpinqz
非常感谢,我先试试。
作者: yeyingqingfeng    时间: 2015-3-11 10:45

xxpinqz 发表于 2015-3-10 20:18


您好我试了一下上面的代码,能分离成两个文本,名字也对,但是里面的内容跟想要的有点区别,我把最终需要的再描述下,感谢您的帮助,谢谢。

原文本如下:

需要分离出来的正文本格式如下:

需要分离出来的负文本格式如下:

谢谢您的热心帮助,
作者: yeyingqingfeng    时间: 2015-3-11 10:46

回复  yeyingqingfeng
实现不难
”一个文件只含有正数(原来文本里面的负数变成0),另一个只含有负数( ...
pcl_test 发表于 2015-3-10 19:14


我把具体要实现的要求重新整理了一下,感谢您的帮助。
作者: xxpinqz    时间: 2015-3-11 12:48

回复 6# yeyingqingfeng


    已改,自己试下。下次把问题说清楚点。。。。
作者: yeyingqingfeng    时间: 2015-6-26 12:55

谢谢热心解答,前段时间有点忙,忘了把帖子注明【已解决】




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