gpt4 book ai didi

Windows 批处理脚本 : Parse CSV file and extract data

转载 作者:可可西里 更新时间:2023-11-01 11:50:50 30 4
gpt4 key购买 nike

我是 Windows 批处理脚本的新手,请原谅我的无知。我有一个如下所示的 CSV 文件:

ColumnA,ColumnB,ColumnC
01/02/2015,ABC,111
01/03/2015,DEF,222
01/03/2015,HHH,333
01/05/2015,XYZ,767

此文件中的行数会有所不同,但列数将保持不变。我需要从 A 列最后一行中提取日期 A 列第 1 行和日期。

在这种情况下,我需要提取 01/02/2015 和 01/05/2015。接下来我想将这两个日期存储在单独的变量中。

我怎样才能做到这一点?我不知道从哪里开始。我唯一拥有的是:

for /F "tokens=1 delims=," %%s in (IntFlow.csv) do @echo %%s

这一行代码剪切第一列并回显它。我不知道接下来要做什么。请指教。

最佳答案

使用 for/f 循环逐行解析 csv 文件。使用 skip=1 跳过标题行。仅在尚未定义第一个变量时设置它。然后只需在每次循环迭代时设置最后一个变量。迟早是对的吧? :)

@echo off
setlocal

set "first="
set "last="

for /f "skip=1 usebackq delims=," %%I in ("test.csv") do (
if not defined first set "first=%%~I"
set "last=%%~I"
)

echo %first%
echo %last%

tokens=1 已经是默认行为。 usebackq 允许您将文件名括在引号中,因此如果您的 csv 文件名中包含空格或其他一些令人讨厌的字符,它应该可以工作。


我在您的评论中看到您决定改用 PowerShell。这是一个 PowerShell 脚本,可让您用日期填充变量。

$csv = ipcsv test.csv
$first = ($csv | select -first 1 | %{ $_.ColumnA })
$last = ($csv | select -last 1 | %{ $_.ColumnA })

$first
$last

关于Windows 批处理脚本 : Parse CSV file and extract data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30176202/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com