我有一个未按预期运行的批处理代码。
以下是代码:
@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
结果是来自1.csv
的流程项目然后跳过2.csv
和3.csv
并直接转到10.csv
,111.csv
,112.csv
,113.csv
,114.csv
,121.csv
,122.csv
和123.csv
。
所以这就是事情;我在尝试上面的代码之前就这样做了。
我创建了一个文件名为6038000006.csv
的空文件。
我运行了这段代码:
@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
6038000006.csv
充满了数据(实际上数据的日期为{1.csv
是一年中的第一季度,2.csv
是一年中的第二季度]所以我很确定它的顺序。)
然后我再次运行此代码,编辑1.csv
成为2.csv
:
@echo off
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
由于代码>>
会在文件底部附加数据。我不认为它重叠,而是附加到最后的数据。
我重复4号,直到我完成123.csv
。
在重复运行结束时,6038000006.csv
包含从文件1.csv
到文件123.csv
的所有已过滤数据。
现在我想,如果可以整合来自1.csv
的代码而不是单行提示我编写代码(当然我将6038000006.csv
转移到其他地方并创建了一个“新”代码此实验代码的空白6038000006.csv
(与上述相同))。
但是,结果是来自2.csv
和3.csv
的数据未反映在新6038000006.csv
上。
答案 0 :(得分:0)
首先,您需要弄清楚它是否实际跳过文件(您不支持此争用,所以我们不确定是什么让您认为这样)。使用以下内容评论echo off
rem @echo off
然后运行它。执行命令应在执行前进行回显。
其次,检查“跳过”的文件实际是否第四列为6038000006
的某些行。可能是它们没有被跳过,而是没有所需的数据。
另一种选择是插入:
dir 6038000006.csv
在每个for
循环后查看文件的更改方式。