使用批处理文件从CSV文件中删除第二行
我只需要使用批处理文件从csv文件中删除第二行。它总是排在第二行,尽管文本可能会有所不同 我一直在寻找答案,但似乎答案总是比我想做的更复杂使用批处理文件从CSV文件中删除第二行,csv,batch-file,Csv,Batch File,我只需要使用批处理文件从csv文件中删除第二行。它总是排在第二行,尽管文本可能会有所不同 我一直在寻找答案,但似乎答案总是比我想做的更复杂@echo off&setlocal >outfile.csv( 对于/f“tokens=1*delims=:”%%I in( 'findstr/n“^”infle.csv^ findstr/v“^2:” )do回波(%%J) ) 要遵循此脚本的逻辑,请从内到外阅读。第一个findstr将读取infle.csv并将行号预加到每一行。管道传输的第二个finds
@echo off&setlocal
>outfile.csv(
对于/f“tokens=1*delims=:”%%I in(
'findstr/n“^”infle.csv^ findstr/v“^2:”
)do回波(%%J)
)
要遵循此脚本的逻辑,请从内到外阅读。第一个findstr
将读取infle.csv
并将行号预加到每一行。管道传输的第二个findstr
命令将排除以2:
开头的所有行。外部for/F
将去除预加的行号整个内容被转储到outfile.csv
@echo off&setlocal
@echo off
setlocal EnableDelayedExpansion
rem Read lines from input.csv
< input.csv (
rem Read and copy the first line
set /P "line="
echo(!line!
rem Just read the second line
set /P "line="
rem Copy the rest of lines
findstr "^"
) > output.csv
>outfile.csv(
对于/f“tokens=1*delims=:”%%I in(
'findstr/n“^”infle.csv^ findstr/v“^2:”
)do回波(%%J)
)
要遵循此脚本的逻辑,请从内到外阅读。第一个findstr
将读取infle.csv
并将行号预加到每一行。管道传输的第二个findstr
命令将排除以2:
开头的所有行。外部for/F
将去除预加的行号整个内容被转储到outfile.csv
@echo off
@echo off
setlocal EnableDelayedExpansion
rem Read lines from input.csv
< input.csv (
rem Read and copy the first line
set /P "line="
echo(!line!
rem Just read the second line
set /P "line="
rem Copy the rest of lines
findstr "^"
) > output.csv
setlocal EnableDelayedExpansion
rem从input.csv读取行
output.csv
@echo off
setlocal EnableDelayedExpansion
rem从input.csv读取行
output.csv
我喜欢。+1.我建议将延迟扩展设置为禁用状态,直到回显(!line
之前,以避免数据中出现感叹号。@rojo:此代码中没有任何可能与延迟扩展相关的问题!;)
我想你是对的!我没有意识到set/P
在延迟扩展方面与set
表现不同。有趣!我喜欢它。+1.我建议在echo之前禁用延迟扩展(!line
以避免在数据中使用感叹号。@rojo:这段代码中没有任何可能与延迟扩展相关的问题!;)
我想你是对的!我没有意识到set/P
在延迟扩展方面的行为与set
不同。有趣!