You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中从CSV文件提取值并设置为变量

PowerShell中提取CSV导入后的数据方法

1. 确认CSV导入结果

先确保你已经正确完成CSV导入(替换成你的实际文件路径):

$inputs = Import-Csv -Path "C:\your\file\path\data.csv"

导入后,$inputs是一个对象数组——数组里的每个元素对应CSV中的一行,CSV的列名就是每个对象的属性。

2. 访问单行数据

通过数组索引定位行(索引从0开始),再通过属性名提取对应列的值:

# 直接提取第一行的Site值
$inputs[0].Site  # 输出:Town1

# 提取第一行的起始里程(注意列名含空格,需用单引号包裹)
$inputs[0].'Mileage Start'  # 输出:21509

# 先把整行存到变量,再访问属性
$firstTrip = $inputs[0]
Write-Host "第一趟行程:日期$($firstTrip.Date),地点$($firstTrip.Site)"

3. 遍历所有行数据

用foreach循环逐个处理每一行,适合批量操作:

foreach ($trip in $inputs) {
    # 输出每行核心信息
    Write-Host "地点:$($trip.Site) | 起始里程:$($trip.'Mileage Start') | 结束里程:$($trip.'Mileage Stop')"
    # 处理空值(比如第二行的Date为空)
    if ([string]::IsNullOrEmpty($trip.Date)) {
        Write-Host "⚠️ 这一行日期为空"
    }
}

运行后会输出:

地点:Town1 | 起始里程:21509 | 结束里程:21564
地点:Town2 | 起始里程:21564 | 结束里程:21583
⚠️ 这一行日期为空

4. 提取整列的所有值

直接通过属性名获取整列数据,结果是一个数组:

# 获取所有地点
$allSites = $inputs.Site  # 结果:@('Town1', 'Town2')

# 获取所有温度值
$allTemps = $inputs.Temp  # 结果:@('71', '55')

5. 将每行字段存为单独变量

如果需要把每行的每个字段都存到独立变量,可按行索引逐一提取:

# 第一行数据
$date1 = $inputs[0].Date
$site1 = $inputs[0].Site
$mileageStart1 = $inputs[0].'Mileage Start'
$mileageStop1 = $inputs[0].'Mileage Stop'
$temp1 = $inputs[0].Temp

# 第二行数据
$date2 = $inputs[1].Date
$site2 = $inputs[1].Site
$mileageStart2 = $inputs[1].'Mileage Start'
$mileageStop2 = $inputs[1].'Mileage Stop'
$temp2 = $inputs[1].Temp

内容的提问来源于stack exchange,提问作者wg041403

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:25:40