2017-09-12 62 views
0

我正在尝试将c:\ users文件夹复制到robocopy的新目标。事情是我的嵌套foreach说法错在这里:使用嵌套的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文件夹中。

回答

2

你有两个foreach循环,所以你将执行robocopy 4次:如果你想jackjon复制到相应的文件夹jacknewjonnew

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 

,你可以使用一个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 
    } 
+1

作为边注:如果目的地文件夹可以用于映射源的[哈希表(https://technet.microsoft.com/en-us/library/ee692803.aspx)到目标文件夹不能通过简单地附加一个字符串来构造。 –

相关问题