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

PowerShell脚本需求:仅为含Sunday的文件顶部添加Test文本

问题分析

你的脚本存在两个核心问题:

  • 外层if判断只要目录里存在包含"Sunday"的文件,就会执行后续的所有.bat文件处理,而非仅处理那些包含"Sunday"的目标文件。
  • 路径范围不统一:Select-String针对C:\Users\Test\*.txt查找,但后续Get-ChildItem处理的是当前目录的.bat文件,两者逻辑范围完全矛盾。
修正后的脚本

如果要处理C:\Users\Test目录下包含"Sunday"的.txt文件,并在这些文件顶部添加"Test",可以使用以下脚本:

# 提取所有包含"Sunday"的txt文件路径(去重避免重复处理)
$targetFiles = Select-String -Path "C:\Users\Test\*.txt" -Pattern "Sunday" | Select-Object -ExpandProperty Path -Unique

# 遍历每个符合条件的文件,在顶部添加文本
foreach ($file in $targetFiles) {
    $content = Get-Content $file -Raw
    $prependText = "Test`r`n"
    $updatedContent = $prependText + $content
    Set-Content $file $updatedContent
}

如果需要处理的是.bat文件,只需把Select-String中的*.txt替换为*.bat即可。

关键说明
  • Select-String ... | Select-Object -ExpandProperty Path -Unique:精准提取所有匹配文件的完整路径,并通过-Unique避免同一文件因多次匹配被重复处理。
  • 直接遍历匹配到的文件列表,确保只修改符合条件的目标文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:10:21