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

PowerShell:不同内容对应不同文件保存时内容重复的问题修复求助

问题分析与修复

你的代码出现所有文件内容相同的原因有两个核心问题:

  1. 函数内部错误遍历所有路径:每次调用MyFunction时,函数里的foreach ($SavePath in $savePaths)会把当前传入的$Text写入所有文件路径,最后一次调用函数的文本会覆盖之前所有文件的内容。
  2. 外层循环未正确关联文本与路径:原外层foreach ($text in $texts)中,$savePath变量未被正确赋值,无法将每个文本对应到指定路径。

修复后的代码

$texts = (
    "Text1",
    "Text2",
    "Text3"
)

$savePaths = (
    "c:\foo\myfile1",
    "c:\foo\myfile2",
    "c:\foo\myfile3"
)

function Write-TextToXml {
    param (
        [string]$Text,
        [string]$SavePath
    )
    $xml = [XDocument]::new(
        [XElement]::new("Item",
            [XAttribute]::new("version", "1"),
            [XElement]::new("text", $Text)
        )
    )
    $outputPath = "$($SavePath.ToLower()).xml"
    $xml.ToString() | Out-File -Path $outputPath
}

# 通过索引遍历,确保文本与路径一一对应
for ($i = 0; $i -lt $texts.Count; $i++) {
    Write-TextToXml -Text $texts[$i] -SavePath $savePaths[$i]
}

关键修复点

  • 移除函数内遍历所有路径的逻辑,让函数只负责单个文本到单个路径的写入操作。
  • 改用for循环通过索引关联$texts和$savePaths,保证每个文本都能写入到对应的目标文件中。
  • 修正原外层循环中$savePath未正确赋值的问题,确保参数传递准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:01:16