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

PowerShell问题:ForEach循环重复执行同一路径未切换至下一路径

问题分析与修复方案

核心问题点

  • 未读取CSV配置中的路径:循环遍历$config时,全程用的是被注释掉的$sourcePath和$destPath变量,根本没用到$item里的配置项,导致每次循环都重复处理同一个路径。
  • 错误的终止逻辑:Catch块里的return会直接终止整个外层循环,只要有一个文件复制失败,后续所有路径都不会处理。
  • 日期格式错误:Get-Date的格式字符串多了一个y,应该是yyyyMMdd_HHmmss(如果需要24小时制就用HH,12小时制用hh)。
  • 语法错误:Rename-Item的路径被拆成两行,PowerShell会识别成两个命令,导致执行失败。
  • 无效的输出处理:Copy-Item后接Format-table完全没必要,不会产生有用输出,反而会引发不必要的格式问题。

修复后的PowerShell脚本

Cls
$date = Get-Date -Format "yyyyMMdd_HHmmss"
$config = Import-Csv -Path 'E:\Backup\Scripts\Atlassian_Backups.csv'
Start-Transcript -Path E:\Backup\Logs\Atlassian_backupMove.log

foreach ($item in $config) {
    # 从CSV配置中读取当前的源路径和目标路径
    $sourcePath = $item.SourcePath
    $destPath = $item.DestPath

    Write-Host "Moving all files in '$sourcePath' to '$destPath'"
    $fileList = @(Get-ChildItem -Path $sourcePath -File)

    if ($fileList.Count -gt 0) {
        Write-Host "Found $($fileList.Count) files to process"
        foreach ($file in $fileList) {
            try {
                # 执行复制操作,去掉多余的Format-table
                Copy-Item -Path $file.FullName -Destination $destPath -Verbose -Force -ErrorAction Stop
            }
            catch {
                # 输出错误后跳过当前文件,继续处理下一个
                Write-Warning "Unable to copy '$($file.FullName)' to '$destPath': $_"
                continue
            }
        }
    }
    else {
        Write-Host "No files found in '$sourcePath'"
    }
}

Stop-Transcript
# 修复Rename-Item的换行问题
Rename-Item -Path E:\Backup\Logs\Atlassian_backupMove.log -Destination E:\Backup\Logs\Atlassian_backupMove_$date.log
Write-Host "Log File has been created and renamed to Atlassian_backupMove_$date.log"

额外说明

  • 确保你的Atlassian_Backups.csv文件包含SourcePath和DestPath两列,每行对应一组源路径和目标路径,比如:
    SourcePath,DestPath
    C:\Path1, E:\backups\folder1\export
    C:\Path2, E:\Backups\folder2\backups
    C:\Path3, E:\backups\folder3\export
    
  • 如果需要用Move-Item替代Copy-Item,直接把脚本里的Copy-Item改成Move-Item即可,注意目标路径的正确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:48:15