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

如何从Posh-SSH的Get-SFTPChildItem输出中提取文件名

从Posh-SSH的Get-SFTPChildItem结果中提取特定格式文件名

步骤1:获取SFTP目录项

先确保已建立有效的SFTP会话(通常存储在$session变量中),再获取目标路径下的所有目录项:

$sftpItems = Get-SFTPChildItem -Session $session -Path "/你的目标SFTP路径"

步骤2:提取并过滤目标格式文件名

针对REGISTRATION_ELI_YYYYMMDD_HHMMSS.csv这类格式的文件名,用正则表达式匹配精准过滤:

# 过滤符合格式的文件名并提取名称字段
$targetFileNames = $sftpItems | Where-Object {
    $_.Name -match '^REGISTRATION_ELI_\d{8}_\d{6}\.csv$'
} | Select-Object -ExpandProperty Name

正则表达式解析

  • ^REGISTRATION_ELI_:匹配文件名开头的固定前缀
  • \d{8}:匹配8位数字组成的日期(如20221222)
  • _\d{6}:匹配下划线+6位数字组成的时间(如071008)
  • \.csv$:匹配结尾的.csv后缀(.需转义,避免匹配任意字符)

简化链式写法

若无需保留所有SFTP项信息,可直接一步完成:

Get-SFTPChildItem -Session $session -Path "/你的目标SFTP路径" | 
    Where-Object { $_.Name -match '^REGISTRATION_ELI_\d{8}_\d{6}\.csv$' } |
    Select-Object -ExpandProperty Name

格式适配调整

如果目标文件名格式有细微变化(比如前缀变体、日期时间格式不同),只需修改正则表达式对应部分即可。例如前缀允许REGISTRATION_ELI或REG_ELI,可将正则开头改为^(REGISTRATION_ELI|REG_ELI)_。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:35:29