我对此很新,但我需要一些帮助。
我有数据需要csv文件第6列的第一个和最后一个条目(总共554个)并将其复制到单个工作表中。 csvs都有不同的范围。任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "pickme="
FOR /f "tokens=6delims=," %%a IN (q28017030.csv) DO (
IF NOT DEFINED pickme ECHO %%a
SET "pickme=%%a"
)
ECHO %pickme%
GOTO :EOF
我使用了一个名为q28017030.csv
的文件,其中包含了我的测试数据。
big,fat,hairy,worksheet,under,discussion,here
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,bingo,data7
制作
discussion
bingo
我认为这就是你所需要的。
请注意,此解决方案假定列1..6数据不包含逗号 - 唯一的逗号是列分隔符。列1..5也不是空的。
pickme
最初被清除,undefined
循环读取第一行时for
也是如此。因此,echo
编辑了列,并在遇到第一个(标题)行后定义pickme
。然后在读取每一行时更新它,因此我们需要echo
遇到的最后一个值。
啊 - 550左右文件不是列
@ECHO OFF
SETLOCAL
(
FOR %%f IN (q28017030*.csv) DO (
SET "pickme="
FOR /f "tokens=6delims=," %%a IN (%%f) DO (
IF NOT DEFINED pickme ECHO %%a
SET "pickme=%%a"
)
CALL ECHO %%pickme%%
)
)>new.txt
type new.txt
GOTO:EOF
制作newfile.txt
我将其设置为仅扫描.csv
模式“q28017030 * .csv”以方便测试。 *.csv
会扫描所有CSV。