【问题标题】:Move file to different folder location将文件移动到不同的文件夹位置
【发布时间】:2018-01-17 11:04:55
【问题描述】:

我正在尝试创建一个 PowerShell 脚本,该脚本将文件列表移动到另一个文件夹中,具体取决于文件名。文件名“Test-AMM - Report”的一个示例。

原始位置

\\oltnas6uk\sd.test.com$\PROJECTS\Account Management\Test-AMM - 报告

文件目的地

\\ammnasuk\rd.test-amm.com$\Business Management\Regular\Reporting

粗体突出显示我可以用来确定文件将进入哪个位置的键盘。

【问题讨论】:

    标签: powershell file-location


    【解决方案1】:

    这样做非常简单。

    首先获取您要移动到名为 $files 的数组中的文件列表:

    $files=get-childitem "\\oltnas6uk\sd.test.com$\PROJECTS\Account Management\"
    

    然后你使用 foreach 循环遍历数组,并在正则表达式模式下使用 switch 来匹配文件上的模式并确定要做什么:

    foreach ($f in $files) {
        switch -regex ($f.Name) {
            "AMM" {
                try {
                    Move-Item -Path $f.FullName -Destination "\\ammnasuk\rd.test-amm.com$\Business Management\Regular\Reporting" -Force
                } catch {
                    Write-Host "Couldn't move file ($f.Name), error was $($_.Exception.Message)" -foregroundcolor red
                }
                break;
            }
            "BMM" {
                try {
                    Move-Item -Path $f.FullName -Destination "\\bmmnasuk\rd.test-amm.com$\Business Management\Regular\Reporting" -Force
                } catch {
                    Write-Host "Couldn't move file ($f.Name), error was $($_.Exception.Message)" -foregroundcolor red
                }
                break;
            }
        }
    }
    

    }

    我建议您在脚本中添加日志记录,或者花足够的时间确保您的模式匹配不会产生意外结果。如果目标中有很多文件,还值得对所有预期匹配项进行比较,以查看有多少文件不符合您的任何规则。

    【讨论】:

      猜你喜欢
      • 2019-07-11
      • 2022-12-25
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 2020-01-13
      相关资源
      最近更新 更多