批处理文件,用于替换文件夹中所有CSV文件中的字符

时间:2018-08-01 13:44:57

标签: csv batch-file

我有一个批处理文件,该文件通过一个特定的CSV文件(逐行),首先用分号替换每个逗号,然后用逗号替换每个点。 如何优化此批处理文件,以便它自动循环浏览文件夹中的每个CSV文件以及该批处理文件所在的位置?

@echo off
    setlocal enableextensions enabledelayedexpansion

    (for /f "tokens=*" %%f in (a.csv) do if not "%%f"=="" (
            set "line=%%f"
            set "line=!line:,=;!"
            set "line=!line:.=,!"
            echo(!line!
    )) > b.csv

    endlocal

此外,批处理文件不应生成新的CSV。原始CSV文件应该简单地被覆盖。

非常感谢!

1 个答案:

答案 0 :(得分:0)

这是我在aschipfl的评论帮助下找到的解决方案:

  

在(* .csv)中将%% i的标准包装起来,然后循环使用%%〜i   比常数a.csv对于输出文件b.csv,请考虑一下   如%%〜ni.new,因此与源文件的命名冲突不会   出现...

@echo off
    setlocal enableextensions enabledelayedexpansion

    (for %%i in (*.csv) do (

        (for /f "tokens=*" %%f in (%%~i) do if not "%%f"=="" (
                set "line=%%f"
                set "line=!line:,=;!"
                set "line=!line:.=,!"
                echo !line! 
        )) > %%~ni_FIX.csv
    ))

    endlocal