我有一个超过20列的.csv文件,我希望删除第5列,并保存结果。
使用';'作为分隔符。
这是我相信最接近预期结果的东西,我看了很多其他类似的线程,但没有设法让任何工作。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
(
FOR /f "delims=" %%a IN (input.csv) DO (
SET "line=%%a"
SET "line=!line:;= ; !"
FOR /f "tokens=1,2*delims=;" %%p IN ("!line!") DO (
SET "line=%%p;%%r"
SET "line=!line: ; =;!"
ECHO(!line!
)
)
)>output.csv
GOTO :EOF
我也试过这个看看它是否有效,不是所有行都是空的
@echo off>output.csv
cls
setlocal
for /f "tokens=1-4* delims=," %%1 in (input.csv) do (
echo %%1,%%2,%%3,%%5>>fourcol.csv
)
type output.csv
这是带有输入文件类型第一行的标题。
CA CB Libelle PV HT Qt Stock Family ...
AR00145 242719258 EFIP7P 5 (blank) (blank) ...
AR00176 764776562 MI7ROSE 3 (blank) (blank) ...
AR00261 3.70072E+12 EA52016 3 (blank) (blank) ...
分隔符是;什么是空白必须保持空白。 以上示例来自Excel以尝试使其更全面,使用记事本打开时的实际形式是
CA;CB;...
AR00145;242719258;...
感谢您的帮助!