2017-09-18 11 views
1

저는 Powershell에서 매우 친환경적입니다. 비슷한 문제를 둘러 보았지만 내 문제가 무엇인지 알 수없는 것 같습니다. 내 CSV에는 Active Directory의 사용자 이름이 있으며 @{user= }이 없으면 작동합니다. 나는 이걸 멀리 얻는 것에 만족했다.하지만 나는 결승선을 넘을 수 없다. StackOverFlow 사용자를 도와주세요! 나는 로그 파일을 볼 때Robocopy 및 CSV 파일이 포함 된 Powershell

$csvFile = 'C:\scripts\HomeDirectory\CN\CN-homedirectory.csv' 
$SrcHome = '\\ch-hz-usrhome1\e$\Home\' 
$DstHome = '\\us-svr-bk2\d$\files\CN_Files\' 

    Import-Csv $csvFile -Delimiter ";" | ForEach-Object { 
    $srcDoc = "$("$SrcHome$_.User")" 
    $dstDoc = "$("$DstHome$_.User\UsersHomeDrive")" 

    RoboCopy $srcDoc $dstDoc /Z /SEC /MIR /COPY:DAT /r:10 /w:40 /log+:C:\scripts\HomeDirectory\CN\CN_UserData.log 
    } 

, 나는 다음을 참조 :

Source : \\ch-hz-usrhome1\e$\Home\@{User=xyu}.User\ 
Dest : \\us-svr-bk2\d$\files\CN_Files\@{User=xyu}.User\UsersHomeDrive\ 

답변

1

당신이 개체의 속성은 문자열 확장하려는 경우 subexpression operator$()를 사용해야합니다.

경로를 구축하는 더 좋은 방법은 Join-Path을 사용하는 것입니다

$srcDoc = Join-Path $SrcHome $_.User 
$dstDoc = Join-Path $DstHome (Join-Path $_.User "UsersHomeDrive") 
+0

정말 고마워요! 나는 바보 같아서 고치는 것이 너무 쉽다. 그 appreaciated! – jodokast89