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

如何让PowerShell脚本自动读取同目录下的任意CSV文件?

PowerShell脚本读取同目录任意CSV文件的解决方案

当然可以省去手动重命名CSV为input.csv的步骤,不能只简单移除input.csv的指定——直接移除的话$inputFile变量会为空,脚本执行时会报错。你需要通过PowerShell的文件检索命令自动获取脚本目录下的CSV文件,以下分两种场景给出具体实现:

场景1:脚本同目录仅存在一个CSV文件

这种情况可以直接获取该唯一CSV的完整路径,替换原脚本开头的$inputfile = "input.csv"为:

# 获取脚本所在目录的完整路径
$scriptDir = $PSScriptRoot
# 检索目录下的CSV文件,取第一个(唯一的那个)的完整路径
$inputFile = Get-ChildItem -Path $scriptDir -Filter *.csv | Select-Object -First 1 -ExpandProperty FullName

场景2:脚本同目录存在多个CSV文件

如果目录下有多个CSV,需要添加选择逻辑,避免脚本误读文件,替换代码如下:

$scriptDir = $PSScriptRoot
# 收集目录下所有CSV文件
$csvFiles = Get-ChildItem -Path $scriptDir -Filter *.csv

# 处理不同情况
if ($csvFiles.Count -eq 0) {
    Write-Error "脚本目录下未找到任何CSV文件,请检查后重试"
    exit 1
} elseif ($csvFiles.Count -gt 1) {
    Write-Host "找到多个CSV文件,请选择要处理的文件:"
    # 列出所有CSV供选择
    for ($i = 0; $i -lt $csvFiles.Count; $i++) {
        Write-Host "$($i+1). $($csvFiles[$i].Name)"
    }
    # 获取用户选择
    $choice = Read-Host "请输入对应编号"
    # 转换为数组索引(从0开始)并获取选中文件的完整路径
    $inputFile = $csvFiles[$choice - 1].FullName
} else {
    # 仅一个CSV时直接获取路径
    $inputFile = $csvFiles.FullName
}

替换完成后,原脚本中使用$inputFile读取文件的逻辑(比如Import-Csv $inputFile)无需修改,即可自动适配目录下的CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:18:19