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

Windows 10下如何基于TXT文件内容批量重命名PNG文件?

解决从TXT提取字符串批量重命名PNG文件的问题

看起来你之前的PowerShell命令是固定替换字符串,但你的需求是从TXT文件里动态提取特定内容来替换文件名里的"CITY",这就是问题所在。下面是一步步的解决方案:

步骤1:从TXT文件提取目标字符串

你的TXT内容是逗号分隔格式:Place_Event,Date_Event Test,10 September 2018,我们需要提取第二个逗号分隔项里的Test(去掉前缀的"Date_Event ")。执行以下PowerShell命令获取这个值:

# 替换成你的TXT文件实际路径,比如".\event_details.txt"
$txtPath = ".\your_text_file.txt"
# 读取文件内容→按逗号分割→取第二个元素→去空格→去掉前缀的"Date_Event "
$targetSuffix = ((Get-Content $txtPath) -split ',' | Select-Object -Index 1).Trim() -replace '^Date_Event ', ''

解释:

  • Get-Content $txtPath:读取TXT文件的全部内容
  • -split ',':把内容按逗号拆成数组,元素分别是Place_Event、Date_Event Test、10 September 2018
  • Select-Object -Index 1:取数组的第二个元素(索引从0开始),也就是Date_Event Test
  • .Trim():去除字符串前后的多余空格
  • -replace '^Date_Event ', '':精准去掉开头的"Date_Event ",最终得到我们需要的Test

步骤2:批量重命名PNG文件

拿到目标字符串后,就可以批量替换PNG文件名里的"CITY"了:

# 遍历当前目录下所有PNG文件
Get-ChildItem -Filter *.png | ForEach-Object {
    # 构建新文件名:替换原文件名中的"CITY"为提取到的$targetSuffix
    $newFileName = $_.Name.Replace("CITY", $targetSuffix)
    # 执行重命名,加上-WhatIf可以先预览效果,确认无误后再删除该参数
    Rename-Item -Path $_.FullName -NewName $newFileName # -WhatIf
}

预览重命名效果(可选)

如果担心误操作,可以先保留-WhatIf参数,命令不会实际修改文件名,只会显示将要执行的操作:

Get-ChildItem -Filter *.png | ForEach-Object {
    $newFileName = $_.Name.Replace("CITY", $targetSuffix)
    Rename-Item -Path $_.FullName -NewName $newFileName -WhatIf
}

为什么你之前的命令没达到预期?

你之前的命令@powershell -command get-childitem *.png | foreach { rename-item $_ $_.Name.Replace("CITY", "TEST") }是把所有PNG文件名里的"CITY"替换成固定的大写TEST,但你需要的是从TXT里提取的小写开头Test,而且是动态获取的内容,所以没有匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:29:55