我有一个未按预期运行的批处理代码。
以下是代码:
@echo off
FOR /F "eol=- tokens=1-11 delims=," %%A IN (1.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (2.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (3.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (10.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (111.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (112.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (113.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (114.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (121.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (122.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv
FOR /F "eol=- tokens=1-11 delims=," %%A IN (123.csv) DO IF %%D==6038000006 ECHO %%A,%%B,%%C,%%D,%%E,%%F,%%G,%%H,%%I,%%J,%%K >> 6038000006.csv结果是,is处理来自1.csv的项目,然后跳过2.csv和3.csv,直接转到10.csv、111.csv、112.csv、113.csv、114.csv、121.csv、122.csv和123.csv。
编辑
这就是问题所在,在尝试上面的代码之前,我正在做这件事。
6038000006.csv创建一个空文件。6038000006.csv中充满了数据(实际上数据是日期为文件1.csv是一年的第一季度,2.csv是一年的第二季度,所以我很确定它是有序的)。1.csv变成2.csv:
@ /F "eol=- delims==1-11 delims=,“%A%A (2.csv),如果%%D==6038000006回波%A、%B、%C、%D、%E、%F、%G、%H、%I、%J、%K >> 6038000006.csv>>在文件底部追加数据。我不认为这是重叠的,而是附加在最后的数据。123.csv。6038000006.csv包含从1.csv文件到123.csv文件的所有筛选数据。1.csv的代码而不是单行代码(当然,我将6038000006.csv转移到其他地方,并为这个实验代码创建了一个“新的”空白6038000006.csv (与上面相同))。但是,结果是来自2.csv和3.csv的数据没有反映在新的6038000006.csv上。
发布于 2014-06-25 02:54:37
首先,您需要弄清楚它是否真的跳过了文件(您没有为这个争用提供支持,所以我们不确定是什么使您这么认为的)。用以下方式注释掉echo off:
rem @echo off然后运行它。执行前应回显已执行的命令。
其次,检查被“跳过”的文件实际上有一些行,其中第四列是6038000006。这可能是因为它们不是被跳过的,而是没有所需的数据。
另一种选择是插入:
dir 6038000006.csv在每个for循环之后,查看文件是如何变化的。
https://stackoverflow.com/questions/24399376
复制相似问题