2017-09-12 9 views
0

robocopy으로 새 대상에 c : \ users 폴더를 복사하려고합니다. 뭔가 내 중첩 된 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 번 실행됩니다 : 당신이 해당 폴더 jacknewjonnewjackjon을 복사 할 경우 단일 foreach 루프를 사용하여 간단하게 추가 할 수 있습니다,

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 

을 복사 할 때 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)를 사용 단순히 문자열을 추가하여 생성되지 않습니다. –