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

PowerShell按文件名特定片段分类移动文件并创建目录求助

问题解决与代码修正

错误原因

你的报错是因为Get-ChildItem的Filter参数要求传入字符串类型的通配符,而你传入了一个脚本块{$_.name -like "011529.tailnm.*"},导致参数类型不匹配。同时代码整体语法逻辑混乱,变量引用、管道衔接都存在问题。

修正后的代码

# 获取符合命名格式的所有txt文件
Get-ChildItem -Filter "*.tailnm.*.txt" | ForEach-Object {
    # 提取文件名中第二个"."后的前5个字符作为目标目录名
    $targetDir = $_.Name.Split('.')[2].Substring(0, 5)
    # 检查目录是否存在,不存在则创建
    if (-not (Test-Path -Path $targetDir)) {
        New-Item -ItemType Directory -Path $targetDir | Out-Null
    }
    # 移动文件到目标目录
    Move-Item -Path $_.FullName -Destination $targetDir
}

代码说明

  • Get-ChildItem -Filter "*.tailnm.*.txt":用字符串通配符直接筛选符合xxxx.tailnm.xxxx.txt格式的文件,避免参数类型错误。
  • $_.Name.Split('.')[2].Substring(0, 5):拆分文件名后取第三个元素(索引从0开始),再截取前5个字符,得到年月分类标识(例如从22JUN21提取22JUN)。
  • Test-Path与New-Item:检查目标目录是否存在,不存在则创建,Out-Null用于屏蔽目录创建的输出信息。
  • Move-Item:将当前文件移动到目标目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:09:23