使用嵌套的 foreach 将用户文件夹复制到新文件夹

Copy users folder to new folder using nested foreach

我正在尝试使用 robocopy 将 c:\users 文件夹复制到新目标。我的嵌套 foreach 语句有问题:

$users = @(
    'jack'
    'Jon'
)
$news = @(
    'jacknew'
    'JonNew'
)

foreach ($userx in $users) {
    foreach ($new in $news) {
        $source = "c:\users$($userx)"
        $destination = "d:\users$($new)"

        robocopy $source $destination /MIR /LOG:c:\robocopy.txt /NP
    }
}

它将两个文件夹复制到 d:\jacknew 文件夹。

你有两个foreach循环,所以你将执行robocopy 4次:

robocopy c:\users\jack d:\users\jacknew /MIR /LOG:c:\robocopy.txt /NP
robocopy c:\users\jack d:\users\jonnew /MIR /LOG:c:\robocopy.txt /NP
robocopy c:\users\Jon d:\users\jacknew /MIR /LOG:c:\robocopy.txt /NP
robocopy c:\users\Jon d:\users\jonnew /MIR /LOG:c:\robocopy.txt /NP

如果要将 jackjon 复制到相应的文件夹 jacknewjonnew,您可以使用单个 foreach 循环并简单地附加复制时的 new;例如:

    $users = @(
    'jack'
    'Jon'
    )
    foreach ( $user in $users ) {
      $source = "c:\users$($user)"
      $destination = "d:\users$($user)new"
      robocopy $source $destination /MIR /LOG:c:\robocopy.txt /NP
    }