我正在尝试使用delimiter =将csv文件的值拆分为单独的行,作为要拆分的点。即。
#csv file
video1,video2,video3
video4,video5,video6
#Preferred output:
video1,
video2,
video3,
ect....
到目前为止,我有:
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims=, " %%a in (input.csv) do (
set /a N+=1
echo ^%%a^,>>output.csv
)
但是我遇到了参数%% a的问题,只是作为字符串添加。我将如何为每个分割而导致分割,并将字符串放到换行符上?
答案 0 :(得分:1)
@echo off
setLocal
for /f "delims=" %%a in (input.csv) do (
for %%i in (%%a) do echo %%i,>>output.csv
)
每行依次放入%%a
。
使用默认列表分隔符(空格,逗号,分号),%%i
依次从%%a
到%%i
答案 1 :(得分:1)
此版本还可以处理包含*
或?
等内容的空列和列。
@echo off
setLocal EnableDelayedExpansion
for /f "delims=" %%a in (input.csv) do (
set "line=%%a"
echo reading line: !line!
for /F "delims=" %%C in (""!line:^,^=^"^
"!"^") do (
set "col=%%~C"
echo - !col!
)
)
诀窍是,那个;将被替换为"<newline>"
,并且会在行的前端和末尾添加引号。
video1,,video3
将更改为
"video1"
""
"video3"
%%~C
删除外部引号,以检索所需的列内容