使用批处理文件删除文件夹中所有csv文件中除第1列和第1行以外的所有列

时间:2014-11-11 12:08:43

标签: batch-file

我在一个文件夹中有数百个csv文件,有9列,其中我想删除所有文件的最后8列和第1行。

文件看起来像enter image description here

此外,我不确定是否可以覆盖编辑的同一文件。现在我正在考虑这是可能的。 如果不能覆盖那么它应该保存在相同的文件名可能在不同的目录

请建议

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

此代码假定您已将批处理文件放在与csv文件相同的目录中。

@echo off

for /f %%A in ('dir /b *.csv') do (
    for /f "skip=1 tokens=1,2* delims=," %%B in (%%A) do (
        echo %%B>>newdata.csv
    )
    copy /y newdata.csv %%A
    del newdata.csv
)

此代码不会对脚本,源csv文件或目标文件夹的位置做出任何假设:

@echo off

set source_folder=C:\path\to\your\csv\files
set target_folder=C:\path\to\your\output\folder

if not exist %target_folder% mkdir %target_folder%

for /f %%A in ('dir /b %source_folder%\*.csv') do (
    for /f "skip=1 tokens=1,2* delims=," %%B in (%source_folder%\%%A) do (
    echo %%B>>%target_folder%\%%A
    )
)