我有一个批处理文件,该文件通过一个特定的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文件应该简单地被覆盖。
非常感谢!
答案 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