[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=1,2,3 delims=        " %%a in (test.xls) do (
  3.   if not defined flag >test.xls echo job        money
  4.   set flag=1
  5.   if "%%b"=="total" (
  6.     >>test.xls echo %%a:%%b        !total:~0,-2!.!total:~-2!
  7.     set total=0) else (
  8.     >>test.xls echo %%b        %%c
  9.     call :count %%c
  10.   )
  11. )
  12. pause
  13. set flag=&set total=&set money=
  14. exit
  15. :count
  16. set money=%1
  17. if "%money:~-3,1%"=="." (set money=%money:.=%) else (
  18.   if "%money:~-2,1%"=="." (set money=%money:.=%0) else (
  19.     set money=%money%00
  20.   )
  21. )
  22. set /a total=%total%+%money%
  23. goto :eof
复制代码
注:delims是以TAB来分开提取的,echo句中也是TAB来分开的

[ 本帖最后由 shqf 于 2008-12-14 10:36 编辑 ]
1

评分人数

    • batman: 在通用和简洁上还可提高PB + 10

TOP

回5楼:是的,论坛程序处理不了tab,会将tab默认为空格,原来在cn-dos也是这样的,
不知道为什么一直解决不了这个问题。同时提示大家写入xls文件时各列之间应用tab格
开。。。
***共同提高***

TOP

刚看到了batman贴在4楼的答案.
然后试了一下,输出答案跟题目中图2的不一样.

稍微修改了一下,可以做到显示一样的.



刚又试了一下,正确的代码贴到这里,也会变成错的.
里面有三个地方需要把空格换成TAB键.

[ 本帖最后由 semiuel 于 2008-12-13 23:18 编辑 ]

TOP

提示:用delims来处理小数。

[ 本帖最后由 batman 于 2008-12-13 22:49 编辑 ]
***共同提高***

TOP

回二楼这样的方法不是不行,但不通用,如不知道小数后有几位数呢?
***共同提高***

TOP

可否先把小数点向后推几位先变成整数,对整数计算完之后再转换为小数呢?~
心绪平和,眼藏静谧。

TOP

返回列表