如何总计读取DOS批次读取.csv的小数 我一直在尝试使用下面从各种搜索中汇总的代码来读取逗号界定的CSV文件,并从每行总计总计一个值: @echo离开 setLocal启用了ExpanseDexpansion ...

问题描述 投票:0回答:1
测试CSV文件包含4行,其中的值在7列中的第4列中。 我最初的问题是解析包含双引号和嵌入式逗号的结肠。 一旦这个问题被上述代码解决了,我进行了更改,现在还有一些问题:

第一行被跳过。  不知道为什么。  文件中的数据应读取187.55、109.48、612.82、1028.81的值,总计为1,938.66

  1. 列的总和没有发生。 我正在得到一个“失踪的操作员”。集合 /a htot =+%%e

  2. 尽管我遇到了这个错误,但变量HTOT似乎确实被填充了,但是具有先前读取的值。 当我运行批处理文件时,这是屏幕输出:

    C:\ dos> try6testf.csv
  3. “值 - ”109.48

    派运营商

    “ htot的值 - ”

    “ e-的值 - ”612.82

    派运营商

    “ htot的值 - ”109

    “值 - ”1028.81

    派运营商

    “ htot的值 - ”612

    我不太精通DOS批处理脚本,因此,如果这很明显,我现在就道歉。

    首先,

    set /P line=

    中的初始
  4. :ProcessFile
命令实际上是在读取文件的第一行,但是它没有处理此数据。其余代码处理后续行。这导致第一行有效跳过。

next,
csv batch-file dos
1个回答
0
投票
用于算术操作,并且您正在遇到问题,因为添加的设置不正确。

set /A htot=+%%e
没有做你的想法。
+
符号对于您需要的东西不正确,并且

%%e
始终是字符串。

a在启用延迟扩展的部分外分配了用set命令分配的变量的变化,其内部内部的变化可见以进行评估。

这与批处理评估顺序有关,该顺序在执行之前对每个语句的快照。

正确的代码:

@echo off
setlocal EnableDelayedExpansion

set "grandtotal=0"

rem
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.